본문 바로가기

ETC/복습

[복습_JAVA] 12

● 반복문

2. while문

- 조건식이 true일 때 반복하고, false일 때 종료한다.

while(조건식) {

    실행할 문장;

}

 

 

 

● for문과 while문 비교

- for : 몇 번 반복할 지 알 때 사용한다.

- while : 몇 번 반복할 지 모를 때 사용한다.

 

 


 

실습(while문)

1. 아래 내용을 참고하여 심리 테스트 프로그램 작성하기

※ 참고

/*
 * Q. 당신이 좋아하는 색을 선택하세요.
 * 1. 빨간색
 * 2. 노란색
 * 3. 검은색
 * 4. 흰색
 *  
 * 빨간색 : 불같고 열정적이고 적극적이다.
 * 노란색 : 발랄하고 밝고 귀엽고 개성있고 유하다.
 * 검은색 : 묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.
 * 흰색 : 천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.
 */

 

 

- 코드 (switch문을 이용하여 while문 탈출하기)

import java.util.Scanner;

public class WhileTask {
	public static void main(String[] args) { 

		Scanner sc = new Scanner(System.in);
		String qMsg = "Q. 당신이 좋아하는 색을 선택하세요.\n"
							+ "1. 빨간색\n"
							+ "2. 노란색\n"
							+ "3. 검은색\n"
							+ "4. 흰색\n"
							+ "5. 나가기\n";
		
		String redMsg = "불같고 열정적이고 적극적이다.";
		String yellowMsg = "발랄하고 밝고 귀엽고 개성있고 유하다.";
		String blackMsg = "묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.";
		String whiteMsg = "천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.";		
		String exitMsg = "종료합니다";
		String errMsg = "다시 시도해주세요";

		String result = "";
		int choice = 0;
		
		while(choice != 5) {  // choice 값이 5가 되면 반복문 종료
			System.out.print(qMsg);
			choice = sc.nextInt();
			
			switch(choice) {
			case 1:  // choice 값이 1이면
				result = redMsg;  // result에 redMsg 값을 담은 후
				break;  // 반복문 종료
			case 2:
				result = yellowMsg;
				break;
			case 3:
				result = blackMsg;
				break;
			case 4:
				result = whiteMsg;
				break;
			case 5:
				result = exitMsg;
				break;
			default:
				result = errMsg;
				break;
			}
			System.out.println(result);
		}
		
	}
}

 

 

- 코드 (if문을 이용하여 while문 탈출하기)

while(true) {  // true : 무한반복
	System.out.print(qMsg);
	choice = sc.nextInt();
	if(choice == 5) {  // choice 값이 5이면
		System.out.println(exitMsg); 
		break;  // while문(if문을 감싸고 있는 중괄호{}) 종료
	}
	
	switch(choice) {
	case 1:
		result = redMsg;
		break;
	case 2:
		result = yellowMsg;
		break;
	case 3:
		result = blackMsg;
		break;
	case 4:
		result = whiteMsg;
		break;
	default:
		result = errMsg;
		break;
	}
	System.out.println(result);
}

 

결과

 

 

 

 

실습(CodeUp)

문제 설명

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

입력

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

출력

입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.)

내 풀이

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		while(true) {
			int a = sc.nextInt();
			if (a == 0) {
			    break;
			}
			System.out.println(a);
		}

	}
}

 

 


문제 설명

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

입력

정수가 순서대로 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.

출력

입력된 정수를 줄을 바꿔 하나씩 출력하는데, 0이 입력되면 종료한다.
(0은 출력하지 않는다.)

내 풀이

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		while(true) {
			int a = sc.nextInt();
			if (a == 0)break;
			System.out.println(a);
		}
 
	}
}

 

 

'ETC > 복습' 카테고리의 다른 글

[복습_JAVA] 14  (0) 2022.08.21
[복습_JAVA] 13  (0) 2022.08.20
[복습_JAVA] 11  (0) 2022.08.16
[복습_JAVA] 10  (0) 2022.08.15
[복습_JAVA] 09  (0) 2022.08.14