while statement

  • 반복문 선택 기준

반복횟수를 알 때 : for문

반복횟수를 모를 때 : while문

while(i-- != 0) {
    System.out.println(i+"I can do it!");
}

//아래와 같다.
while(i != 0) {
    i--;
    System.out.println(i+"I can do it!");
}

각 자릿수의 합을 구하는 코드

import java.util.*;

class digitsum {
	public static void main(String[] args) {
		int num = 0, digitsum = 0;
		System.out.print("숫자를 입력하세요.(예:12345)>");
		
		Scanner scanner = new Scanner(System.in);
		String tmp = scanner.nextLine();
		num = Integer.parseInt(tmp);//tmp를 숫자 정수로 변환!
		
		while(num!=0) {//num=12345->1234->123->12->1->0이되면서 while문 탈출 
			digitsum += num%10;//sum=5->5+4->5+4+3->5+4+3+2->5+4+3+2+1
			System.out.printf("sum=%d num=%d%n",digitsum,num);
			
			num /= 10;//num=1234->123->12->1->0
		}
		System.out.printf("각 자리수의 합:%3d",digitsum);
	}
}
  • do-while문

: 블럭{}을 최소한 한 번 이상 반복한다.=>사용자 입력을 받을 때 유용하다. 단, while문 끝에 ';' 잊지 않도록 주의한다!

do {

} while();
  • do-while문 연습 : 숫자 맞추기

//사용자에게 숫자를 입력받아서 숫자 맞추는 코드
import java.util.*;

class Ex4_15 {
	public static void main(String[] args) {
		int input = 0, answer = 0;
		
		answer = (int)(Math.random()*100) +1;
		System.out.println("anser="+answer);
		Scanner scanner = new Scanner(System.in);
		
		do {
			System.out.print("1부터 100사이의 정수를 입력하세요.>");
			input = scanner.nextInt();
			
			if(input > answer) {
				System.out.println("더 작은 수를 입력하세요 ");	
			} else if(input < answer) {
				System.out.println("더 큰 수를 입력하세요");			
			}
			
			
		} while(answer!= input);
		
		System.out.println("정답입니다! ");
	}
}

while 문으로 바꿨을 경우 입력을 받는 코드가 2번이상 중복되기 때문에 좋지 않다.

Last updated