본문 바로가기

Java Log

Java Study 5day / 자바 While문 (반복문) 정리 및 예제(팩토리얼(factorial) 출력 및 자릿수 합 구하기)

While문 (반복문)

While문은 for문과 같은 반복문으로 for문이 정해진 횟수만큼 반복을 한다면 While문은 반복횟수가 조건에 따라 일정치 않을 때 주로 사용합니다.

1
2
3
4
5
6
7
8
9
10
        int i = 0; // int i(j)=0부터 i(j)가 10보다 작을 때 까지 반복하는 반복문
        // for문의 초기화 식이 while문은 미리 선언되어야 한다.
        while(i<10) {
            System.out.println(i);
            i++; // for문의 증감식 역할이다.
        }
    
        for(int y=0;y<10;y++) {
            System.out.println(y);
        }
cs

While문 출력 결과

위 Code와 같이 for문과 while문은 서로 변경하여 사용 할 수 있다. 다만 초기화식과 증감식의 위치가 다르다.

 

 

While문 예제

숫자를 입력받아 Factorial을 계산해 주는 program code를 작성 하라

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        System.out.print("숫자를 입력하시오 : ");
        int num = scanner.nextInt(); // Factorial 숫자 입력
        
        int fac = num;
        int total=1; // 값을 누적시킬 변수 (곱하기이기 때문에 초기값이 1이다.)
        
        while(fac!=0) {
            
            total = total*fac; // total에 입력받은 숫자 곱하면서 누적
            fac--; // 입력받은 숫자 1씩 감소시키며 total에 곱한 값 누적
// 값이 0이 될 때 까지 반복
            
        }
        
        System.out.println(num+"! = "+total); // 결과 값 출력
cs

While문 예제(1) Factorial 계산 출력 결과

해당 Code에서  While문은 입력 받은 숫자로 초기화식을 설정 하였고 fac변수가 0일때 까지 반복하며 total변수에 곱한값을 반복하여 누적해 가는 Code이다.

 

 

정수형 숫자를 입력받아 각 자리수의 값들을 더하는 Code를 작성하라

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        System.out.print("숫자를 입력하세요 : ");
        int num = scanner.nextInt(); // 정수형 숫자 입력
        
        
        int total=0; // 값을 누적시킬 변수(더하기이기 때문에 초기값이 0이다.)
        
        while(num!=0) {
            
            total=total+(num%10); // 나머지 계산을 이용해 뒤에 자리 수 부터 합
            num/=10;         // 10으로 나누어 뒤에자리수 제거
            
        }
 
        System.out.println("입력된 숫자의 합은 : "+String.format("%2d", total)+"입니다.");
cs

While문 예제(2) 출력 결과

입력받은 숫자를 나머지 계산(%)을 이용해 뒤에자리 수부터 누적 시켜나가 더해주는 Code 입니다. 123456을 입력 받으면 처음에 10으로 나눈 나머지인 6을 누적 시키고 나눗셈을(/)이용해 6을 제거하고 12345만 남깁니다. 이 과정을 입력받았던 숫자가 0이 될때까지 반복해 각 자리수의 합을 도출해 낼 수 있습니다.