
while( 조건식 ) {
실행 코드
}
// 조건식으로 정지
int cnt = 1;
while (cnt <= 3) {
System.out.println(cnt);
cnt++;
}
// if 문 break; 로 정지
cnt = 1;
while (true) {
if (cnt > 5)
break;
System.out.println(cnt);
cnt++;
}
System.out.println("cnt : " + cnt);
// boolean 변수로 정지
cnt = 1;
boolean run = true;
while (run) {
System.out.println(cnt);
cnt++;
if (cnt > 5)
run = false;
}
System.out.println("cnt : " + cnt);

int data = -1;
// 데이터 필터링 >> 정수만 받음, 음수는 무한반복
// 조건식 정지
while(data<0) {
System.out.print("숫자 입력 >> ");
data = sc.nextInt();
}
System.out.println("data : " + data);
// if 문 break; 정지
while(true) {
System.out.print("숫자 입력 >> ");
data = sc.nextInt();
if(data >=0) break;
}
System.out.println("data : " + data);
// boolean 값 정지
boolean run = true;
while(run) {
System.out.print("숫자 입력 >> ");
data = sc.nextInt();
if(data >=0) run = false;
}
System.out.println("data : " + data);
System.out.println();

do while 문
do {
실행코드
} while ( 조건식 ) ;
int value = 0; // 입력
int tot = 0; // 합
do {
System.out.println("숫자 입력(종료 : 0) >> ");
value = sc.nextInt();
tot += value;
} while (value != 0);
System.out.println("입력값의 합 : " + tot);

int out = 0;
int in = 0;
while (out < 3) { // out : 0
in = 0; // 재설정
while (in < 5) { // 0 1 2 3 4 5
System.out.print(in + 1 + " ");
in++;
}
System.out.println();
++out;
}
int select = 0;
while (true) {
for (int heart = 3; heart > 0; heart--) {
System.out.println("생명 : " + heart);
}
System.out.print("정지(0) >> ");
select = sc.nextInt();
if (select == 0)
break;
}

나이를 입력받아서 출력하는 코드를 작성
- 0 ~ 130 사이만 가능합니다
// 내 코드
while (true) {
System.out.print("나이 입력 >> ");
int age = sc.nextInt();
if (age >= 0 && age <= 130) {
System.out.println("나이 : " + age);
} else {
System.out.println("입력 오류");
break;
}
}
// 강사님 코드
int age = 0;
while (true) {
System.out.println("나이 입력 > ");
age = sc.nextInt();
if (age >= 0 && age <= 130)
break;
System.out.println("나이는 0 ~ 130 사이만 가능합니다.");
}
System.out.println("나이 : " + age + " 세");

성별을 입력받아서 출력하는 코드를 작성
- 남성, 여성만 가능
// 내 코드
while (true) {
System.out.print("성별 입력 >> ");
String gen = sc.next();
if (gen.equals("남성") || gen.equals("여성")) {
System.out.println("성별 : " + gen);
} else {
System.out.println("입력 오류");
break;
}
}
// 강사님 코드
String gender = "";
while (true) {
System.out.println("성별 입력 > ");
gender = sc.next();
if (gender.equals("남성") || gender.equals("여성"))
break;
}
System.out.println("성별 : " + gender);

- 치즈 10Box 가 저장되어 있는 창고에 1쌍의 쥐가 살고 있다
- 쥐 한마리가 하루에 먹을수 있는 치즈의 양은 20g 이고,
- 치즈를 먹은 10일째 되는 날마다 쥐의 객체수가 2배씩 증가
- 몇일만에 창고의 치즈를 모두 먹게되고, 이때까지의 쥐의 객체수를 구하는 코드를 작성
- 치즈 1Box : 1kg
// 내 코드
int r = 2;
int c = 10000;
int d = 0;
boolean run = true;
while (run) {
d++;
System.out.println("day : " + d + "일");
if (d % 10 == 0)
r *= 2;
c = c - r * 20;
System.out.println("쥐 객체수 : " + r + " 마리");
if (c > 0)
System.out.println("남은 치즈 양 : " + c + "g");
System.out.println();
if (c < 0) {
System.out.println("치즈 끝");
break;
}
}
// 강사님 코드
int cheeseBox = 10;
int cheeseGram = cheeseBox * 1000;
int mouse = 2; // 쥐
int day = 0; // 날짜
while (cheeseGram > 0) {
++day;
int eat = mouse * 20;
cheeseGram -= eat;
System.out.println(day + "일 - 먹은양 : " + eat + " - 남은 양 : " + cheeseGram);
if (day % 10 == 0) {
mouse *= 2;
System.out.println("쥐 객체수 증가 : " + mouse);
}
}
System.out.println("총 : " + day + "일 - 객체수 : " + mouse);

집주소, 자주가는 장소 한군데씩을 저장하고, 확인할 수 있는 코드를 작성하세요
- 1.집주소 등록 2.장소 등록 3.확인
0 이 입력되면 종료 됩니다
Ex) 1.집주소 등록 2.장소 등록 3.확인 > 1
집주소 입력 > 서울시 오디?
1.집주소 등록 2.장소 등록 3.확인 > 3
집 : 서울시 오디?
장소 :
1.집주소 등록 2.장소 등록 3.확인 > 2
장소 입력 > 어딘지 모름
1.집주소 등록 2.장소 등록 3.확인 > 3
집 : 서울시 오디?
장소 : 어딘지 모름
1.집주소 등록 2.장소 등록 3.확인 > 0
- Program end -
// 내 코드
String houseAdr = "";
String place = "";
int select = 0;
boolean run = true;
while (run) {
System.out.println("--- Main Menu---");
System.out.println("1. 집주소 등록\n" + "2. 장소 등록\n" + "3. 확인\n" + "0. 종료");
System.out.print("항목 선택 > ");
select = sc.nextInt();
System.out.println();
switch (select) {
case 0:
System.out.println("- Program end -");
run = false;
break;
case 1:
System.out.print("집주소 입력 > ");
sc.nextLine();
houseAdr = sc.nextLine();
System.out.println("집주소 입력 완료\n");
break;
case 2:
System.out.print("장소 입력 > ");
sc.nextLine();
place = sc.nextLine();
System.out.println("장소 입력 완료\n");
break;
case 3:
System.out.println("--- 입력 장소 확인 ---");
System.out.println("집 : " + houseAdr);
System.out.println("장소 : " + place);
System.out.println();
break;
default:
System.out.println("입력 오류\n" + "1, 2, 3, 0 중 선택");
System.out.println();
}
}

// 강사님 코드
String home = "";
String place = "";
int select = 0;
boolean run = true;
while (run) {
System.out.println("1.집주소 등록 2.장소 등록 3.확인 >> ");
select = sc.nextInt();
if (select >= 1 && select <= 3)
sc.nextLine();
switch (select) {
case 1: // 집주소 등록
System.out.println("집주소 입력 > ");
home = sc.nextLine();
break;
case 2: // 장소 등록
System.out.println("장소 입력 > ");
place = sc.nextLine();
break;
case 3: // 등록 확인
System.out.println("집 : " + home);
System.out.println("장소 : " + place);
break;
case 0:
run = false;
break;
default:
System.out.println("선택 오류~");
} // switch
System.out.println();
} // while
System.out.println("- Program end - ");

삼항 연산자
짧을 때 사용하면 가독성 좋음
break
continue
// 삼항 연산자
int data = 7;
String res = (data % 2 == 1) ? "홀수" : "짝수";
System.out.println(data + " : " + res);
System.out.println();
// break
for (int i = 1; i <= 3; i++) {
System.out.print(i + "회전 : ");
for (int j = 1; i <= 10; j++) {
System.out.print(j + " ");
if (j == 7)
break;
}
}
// continue
// 무한 반복 주의
int step = 0;
while (step < 10) {
++step;
if (step % 3 == 0) {
System.out.println("jump~");
continue;
}
System.out.println(step);
}

import java.util.Random;
// Random class 객체 생성
Random random = new Random();
// nextInt : int 범위에서 생성
int va = random.nextInt();
System.out.println("va : "+va);
// nextInt( bound ) : 0 ~ (bound - 1) 사이에서 생성
// 주의사항 : 해당 숫자 포함 X
for(int i=0; i<5;i++) {
int vb = random.nextInt(10);
System.out.println("vb : "+vb);
}
System.out.println();
// nextDouble() : 0.0~ 0.9999999...
// 1.0 포함 X
double vc = random.nextDouble();
System.out.println("vc : "+vc);
double vd = random.nextInt(100) / 10.0;
System.out.println("vd : "+vd);
// 소문자 알파벳
char ch = (char)(random.nextInt(26) + 97);
System.out.println("ch : "+ch);

2 ~ 50 사이의 랜덤값 5개를 출력하는 코드를 작성
// 내 코드
for(int i=0;i<5;i++) {
int va = r.nextInt(49)+2;
System.out.println("va : " + va);
}
// 강사님 코드
// 범위 : (마지막 값 - 시작 값 +1) + 시작 값
for(int i=0; i<5;i++) {
int data = r.nextInt(49) +2;
System.out.print(data +" ");
}
System.out.println();
System.out.println();

- 주사위 값을 가지는 변수 2개를 선언하고,
1 ~ 6 사이의 랜덤값으로 초기화- 두개의 주사위에 한번에 같은 값이 들어갈때 까지의 시도 횟수를 구하는 코드를 작성
// 내 코드
int cnt = 0;
while(true) {
int dice1 = r.nextInt(6) +1;
int dice2 = r.nextInt(6) +1;
cnt++;
System.out.println(cnt + "회");
System.out.println("dice1 : "+ dice1);
System.out.println("dice2 : "+ dice2);
if(dice1==dice2) {
break;
}
}
// 강사님 코드
int count =0;
while(true) {
++count;
int diceA = r.nextInt(6)+1;
int diceB = r.nextInt(6)+1;
System.out.println(count + " 회 : "+ diceA + " - " + diceB);
if(diceA==diceB)
break;
}

사용자 확인 문자열을 생성하는 코드를 작성하세요
- 확인 문자열 : 0 ~ 9 , A ~ Z 의 조합 5개로 이루어져 있습니다
Ex) A7G3B , KATIA , 70384 .....
// 내 코드
String check = "";
for(int i=0;i<5;i++) {
int select = r.nextInt(2);
if(select==0) {
check += r.nextInt(10);
}else {
check += (char) (r.nextInt(26) + 65);
}
}
System.out.println("확인 문자열 : " + check);
// 강사님 코드
String userCode ="";
for(int i=0;i<5;i++) {
boolean select = r.nextBoolean();
if(select) {
userCode += (char)(r.nextInt(10) +'0'); //문자열 0-9
//userCode += r.nextInt(10); // 숫자 0-9
} else {
userCode += (char)(r.nextInt('Z' - 'A' +1)+'A');
}
}
System.out.println(userCode);

// 컴퓨터와 가위, 바위, 보 게임을 진행하는 코드를 작성하세요
// - 3승 또는 3패하면 종료됩니다
// - 1.가위 2.바위 3.보
// 내 코드
int victory = 0;
int defeat = 0;
Scanner sc = new Scanner(System.in);
boolean game = true;
String gbbu = "";
String gbbc = "";
while (game) {
System.out.println("-- 가위 바위 보 --");
System.out.println("3승 또는 3패하면 종료");
System.out.println("------ 선택 ------");
System.out.println("1.가위 2.바위 3.보");
int select = sc.nextInt();
int computer = r.nextInt(3) + 1;
switch (select) {
case 1:
gbbu = "가위";
break;
case 2:
gbbu = "바위";
break;
case 3:
gbbu = "보";
break;
default:
System.out.println("1, 2, 3 중 선택");
System.out.println();
continue;
}
switch (computer) {
case 1:
gbbc = "가위";
break;
case 2:
gbbc = "바위";
break;
case 3:
gbbc = "보";
break;
}
System.out.println("나 : " + select + ", " + gbbu);
System.out.println("컴 : " + computer + ", " + gbbc);
if (select == 1 && computer == 3 || select == 2 && computer == 1 || select == 3 && computer == 2) {
System.out.println("결과 : 이김");
victory++;
} else if (select == 1 && computer == 2 || select == 2 && computer == 3 || select == 3 && computer == 1) {
System.out.println("결과 : 짐");
defeat++;
} else if (select == computer) {
System.out.println("결과 : 비김");
}
System.out.println("승리 : " + victory + " 회");
System.out.println("패배 : " + defeat + " 회");
System.out.println();
if (victory == 3) {
System.out.println("이킴 ㅋㅋ");
break;
}
if (defeat == 3) {
System.out.println("짐 ㅠㅠ");
break;
}
}
// 강사님 코드
int user = 0; // 사용자
int com = 0; // 컴퓨터
int win = 0; // 승
int draw = 0; // 무
int lose = 0; // 패
while(win < 3 && lose < 3) {
// com 값 설정
com = r.nextInt(3)+1;
//System.out.println("com : " + com);
// 사용자 값 입력
while(true) {
System.out.print("1.가위 2.바위 3보 >> ");
user = sc.nextInt();
if(user>=1 && user<=3)
break;
}
System.out.println();
// 선택값 문자열 설정
String userStn = "";
if(user == 1) userStn = "가위";
else if(user == 2) userStn = "바위";
else userStn = "보";
String comStn = "";
if(com == 1) comStn = "가위";
else if(com == 2) comStn = "바위";
else comStn = "보";
System.out.println("사용자 : " + userStn + " - com : " + comStn);
// 결과
if(user == 2 && com == 1) {
System.out.println("승");
++win;
} else if(user == 3 && com == 2) {
System.out.println("승");
++win;
} else if(user == 1 && com == 3) {
System.out.println("승");
++win;
} else if(user == com) {
System.out.println("무");
++draw;
} else {
System.out.println("패");
++lose;
}
System.out.println();
} // while(win < 3 && lose < 3) end
// 최종 결과
System.out.println(win + "승 " + draw + "무 " + lose + "패");
if(win > 2) {
System.out.println("당신의 승리 ㅠㅠ");
} else {
System.out.println("내가 이겼어요..^^");
}


1.콜라(1000) 2.커피(300)
-------------------------------
돈을 넣어주세요 : 1500
1.콜라(1000) 2.커피(300) 선택 > 1
콜라가 나옵니다~
현재 잔액 : 500원
재구매 하시겠어요(0.no 1.yes) > 1
1.콜라(1000) 2.커피(300) 선택 > 1
금액이 부족합니다..
현재 잔액 : 500원
재구매 하시겠어요(0.no 1.yes) > 1
1.콜라(1000) 2.커피(300) 선택 > 2
커피가 나옵니다~
거스름 돈 : 200원
// 강사님 코드
Scanner sc = new Scanner(System.in);
int coin = 0; // 금액
int coffee = 300; // 커피
int coke = 1000; // 콜라
System.out.println("콜라(" + coke + ") , 커피(" + coffee + ")");
System.out.print("금액을 투입하세요 >> ");
coin = sc.nextInt();
System.out.println();
while(coin >= coffee) {
System.out.print("1.콜라(" + coke + ") 2.커피(" + coffee + ") 선택 > ");
int select = sc.nextInt();
System.out.println();
switch(select) {
case 1: // 콜라
if(coin >= coke) {
coin -= coke;
System.out.println("콜라가 나옵니다..");
} else {
System.out.println("금액이 부족합니다");
}
break;
case 2: // 커피
if(coin >= coffee) {
coin -= coffee;
System.out.println("커피가 나옵니다..");
} else {
System.out.println("금액이 부족합니다");
}
break;
default:
System.out.println("없는 제품입니다~");
} // switch(select) end
// 추가 구매
int add = 0; // 0 : 종료, 1 : 추가 구매
if(coin >= coffee) {
System.out.println("현재 잔액 : " + coin);
while(true) {
System.out.print("재구매 하시겠어요(0.no 1.yes) > ");
add = sc.nextInt();
if(add == 0 || add == 1)
break;
}
}
if(add == 0) break;
} // while(coin >= coffee) end
System.out.println("거스름 돈 : " + coin + " 원");
