본문 바로가기
Spring-Java/Java

Day03_package, printf, while

by 현대타운301 2023. 8. 17.

2023.08.16 (Day03)

 

Day03 세 줄 요약

- java내 class는 항상 대문자로 시작하고, java.lang 안에 포함된 class는 따로 import 불필요

- while 문에서는 break를 통해 exit

- Scanner class에서 nextInt()와 next()는 'space' 혹은 'enter'를 기준으로 구분

 

Eclipse workspace

 

저장경로

C드라이브->java->ex01(project)->src(folder)->day03(package)->for_예제,while_예제,...(class)

          - 자동으로 생성된 src 폴더는 'source'라는 의미로, 기본 설정된 폴더 이름

          - src 폴더에 생성된 pakage들은 bin 폴더에도 똑같이 생성됨

          - bin 폴더에서 컴퓨터가 읽을 수 있도록 컴파일 해줌

 


package

 

java.lang

package java.lang 안에 포함된 class들은 import 없이 바로 사용가능 (String, System, ...)

 

java.util

Scanner의 경우, package java.util에 들어있기 때문에 사용 전에 import 필요

import java.util.Scanner; // import 문구

 


while

 

while(true) - break;

for 문과 달리 변수선언, 변수증감식 제외하고 변수조건만 있으면 됨

조건만 맞으면 계속 실행되기 때문에 'break'를 통해 exit

 

일반적인 형태

          - while(true) {

          -          함수내용...          // 반복하고자 하는 내용

          -          if (a == 0) {          // a = 0 이면

          -                    break;       // exit   

          -           }

          - }

 

boolean 변수를 활용

while문 안에 다중으로 반복문이 구성된 경우 (특히 switch-case문), 바깥쪽 while문을 나오기 위해

          - boolean run = true;

          - while(run) {

          -          함수내용...          // 반복하고자 하는 내용

          -          if (a == 0) {          // a = 0 이면

          -                    

          -                    break;       // exit   

          -           }

          - }

 


Java 기초

 

printf()

변수 값을 '%' 기호를 통해 불러옴
'%(type), 변수이름'과 같은 형식으로 사용
          - printf("%d,%d,%.2f,%s, ...", a,b,c,d, ...) // a, b = 정수 c = 실수(소수점2번재까지) d = 문자열
          - %d = decimal, 숫자
          - %f = float, 실수
          - %s = string, 문자열
          - %,d = *1000 단위로 ',' 추가 (ex.1,000 / 1,000,000)

 

단축키

Ctrl + Shift + F : 자동 줄 맞춤

 


예제

 

source code

package day04;

import java.util.Scanner;

public class Ex03_upDown {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// double a = Math.random();	0.____ random 숫자 발생
		
		Scanner sc = new Scanner(System.in);
		int answer = (int)(Math.random()*31)+1;	// 1~31 랜덤 숫자
		System.out.println(answer);
		int Try = 1;
		int life = 5;
				
		while (true) {
			System.out.println("========== [Up & Down] ==========");
			System.out.printf("========== [life : %d] ==========\n", life);
			System.out.print("1~31까지 숫자 입력 >> ");
			int num = sc.nextInt();
			life--;
			
			if (life == 0 && (num > answer || num < answer)) {
				System.out.println("life 소진! 게임종료...");
				break;
			} else if (num == answer) {
				System.out.printf("정답입니다..!(시도횟수:%d / life:%d)", Try, life);
				break;
			} else if (num > 31 || num < 1) {
				System.out.println("1~31까지만 입력하세요..!");
				life++;
			} else if (num > answer) {
				System.out.println("Down 입니다");
				Try++;
			} else if (num < answer) {
				System.out.println("Up 입니다");
				Try++;
			}
		} sc.close();
	}
}

 

실행결과

28
========== [Up & Down] ==========
========== [life : 5] ==========
1~31까지 숫자 입력 >> 0
1~31까지만 입력하세요..!
========== [Up & Down] ==========
========== [life : 5] ==========
1~31까지 숫자 입력 >> 32
1~31까지만 입력하세요..!
========== [Up & Down] ==========
========== [life : 5] ==========
1~31까지 숫자 입력 >> 29
Down 입니다
========== [Up & Down] ==========
========== [life : 4] ==========
1~31까지 숫자 입력 >> 27
Up 입니다
========== [Up & Down] ==========
========== [life : 3] ==========
1~31까지 숫자 입력 >> 28
정답입니다..!(시도횟수:3 / life:2)

 

'Spring-Java > Java' 카테고리의 다른 글

Day06_배열예제2  (0) 2023.08.21
Day05_배열예제  (2) 2023.08.20
Day04_while(boolean), 배열(Array)  (0) 2023.08.17
Day02_String, switch-case, for  (0) 2023.08.16
Day01_이클립스, 아마존코레토, 변수(Variable)  (0) 2023.08.13