IT/JAVA

while문 문제 풀이

_KH_ 2024. 12. 27. 18:30

[1] 1부터 10까지 출력해주세요.

public static void main(String[] args) {

		int i =1;
		while(i<=10) {
			System.out.println(i);
			i++;
		}
	}

출력 결과는 다음과 같다.

 

디버깅표는 다음과 같다.

 

i = 11이 되면 i <= 10을 불충족하여 while문을 벗어난다.

 

[1++] 10부터 1까지 출력해주세요.

	int i = 10;
		while(i>=1) {
			System.out.println(i);
			i--;
		}

출력 결과는 다음과 같다.

 

디버깅표는 다음과 같다.

 

10부터 1까지 이므로 i는 10으로 초기화하고 i++ 대신 i--를 사용하면 된다. 그리고 1까지 더하므로 조건은 while(i>=1)이 되면 된다.

10부터 시작하여 i = 0이 되면 while문을 탈출한다.

 

[2] 5부터 10까지 정수중에서 짝수를 출력해주세요.

	int i = 5; // 5부터 시작
		while(i <= 10) { // i가 10보다 작거나 클 때
			if(i%2==0) { // 2로 나눈 나머지가 0이 되면 (=짝수이면)
				System.out.println(i); // 출력한다.
			}
			i++; // 1 증가
		}

출력 결과는 다음과 같다.

 

디버깅표는 다음과 같다.

 

i가 11이 되면 조건을 불충족하여 while문을 벗어난다.

 

[2++] 5부터 10까지 정수를 모두 출력해주세요. 단, 홀수는 출력하지마세요.

		int i = 4;
		while(i<=10) {
			i++;
			if(i%2 != 0) {
				continue;
			}
			System.out.println(i);
		}

출력 결과는 다음과 같다.

 

 

디버깅표는 다음과 같다.

 

i를 먼저 증가시키기 때문에 i 를 4로 초기화했다. 

또한, i%2 != 0이 F인 수들은 홀수에 해당하지만 홀수는 출력하지 말라고 하였으므로, continue를 통해서 실행하지 않고 while로 돌아간다.

 

[3] 1에서 8까지의 정수들중에서 8의 약수인 정수들만 출력해주세요.

	int i = 1;
			while(i<=8) {
				if(8%i==0) {
					System.out.println(i);
				}
				i++;
			}

출력 결과는 다음과 같다.

 

디버깅표는 다음과 같다.

 

8의 약수는 1, 2, 4, 8이다.

그러므로 8을 i로 나누었을 때 0이 되는 수는 8의 약수에 해당하는 것이다.

i의 초기값은 1로 설정하고, 8까지의 정수들이라고 제시되어있으므로 i가 8보다 작거나 같을 때까지 반복한다.

여기서, 8을 i로 나눴을 때 나머지가 0이라면 ( == 8의 약수) i를 출력하고 1 증가시키도록 한다.

8의 약수만 출력되게 하고, i가 9가 되면 while문을 탈출한다.

 

[4] 1부터 10까지의 총합을 구해주세요.

                int i = 1;
		int sum = 0;
		while(i<=10) {
			sum += i;
			i++;
		}
		System.out.println(sum);

출력 결과는 다음과 같다.

 

 

디버깅표는 다음과 같다.

 

초기값은 1로 설정하고 총합을 저장할 sum이라는 변수를 만들어준다.

10까지의 총합을 구하는 것이므로 i가 10보다 작거나 같을 때까지 while문을 반복한다.

i를 sum에 더하고 i를 1씩 증가시키면 1부터 10까지의 합을 구할 수 있다.

i가 11이 되면 while문을 탈출한다.

 

[4++] 1부터 100까지 정수들을 모두 더해가면서 그 총합을 출력해주세요. 단, 총합이 50을 초과하면 총합을 그만 출력해주세요.

	int i = 1;
		int sum = 0;
		while(i<=100) {
			sum += i;

			if(sum > 50) {
				break;
			}
			i++;

			System.out.println(sum);
		}

 

출력 결과는 다음과 같다.

 

디버깅표는 다음과 같다.

 

초기값은 1로 설정하고, 위와 마찬가지로 총합을 저장할 sum이라는 변수를 선언한다.

100까지의 정수를 모두 더하는 것이므로 while문의 조건은 i<=100으로 설정한다.

i가 100이 될 때까지 sum에 i를 더하는데, 이때 sum이 50보다 클 경우에는 break문을 통해 반복문을 탈출한다.

마지막 i = 10일 때 sum  = 55가 되는데 sum이 50을 초과하므로 while문을 탈출하여 55는 출력되지 않고, 45까지만 출력된다.

 

'IT > JAVA' 카테고리의 다른 글

반복문 별 찍기  (0) 2024.12.31
Day3 - for문/ 변수의 유효범위(scope)  (0) 2024.12.30
Day 2 - 조건문 : if문 예제  (1) 2024.12.27
디버깅표 작성하기  (0) 2024.12.26
CodeUp - 1153 : 두 수의 대소 비교  (0) 2024.12.26