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 필요
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 |