for 문

 

for (초기문; 조건식; 반복 후 작업) {
    ..작업문..
}

 

  • 반복 횟수를 아는 경우에 사용한다.
  • 초기문은 시작할 때 한 번만 실행된다.
  • 초기문에 ','를 사용하여 여러문장을 나열할 수 있다.
  • 조건식에 true 가 있거나 비어 있으면 무한 반복된다.
  • 작업문이 실행된 후, 반복 후 작업이 실행된다.

 

예시

 

for 문을 이용하여 1에서 10까지 덧셈으로 표시하고 합을 출력하라.

 

public class ForSample {
    public static void main(String[] args) {
        int sum = 0;

        for(int i=1; i<=10; i++) {
            sum += i;
            System.out.print(i);
            if(i<10)
                System.out.print("+");
        }

        System.out.print("="+sum);
    }
}

 

실행결과
1+2+3+4+5+6+7+8+9+10=55

for 문에서 1부터 10까지의 합을 sum변수에 대입하고 이를 출력한다.

 

while 문

 

whlie (조건식){
    ...작업문...
}

 

  • 조건식이 true 를 만족하는 동안 작업문을 반복 실행한다.
  • 조건식이 없으면 컴파일 오류가 발생한다.

 

예시

 

while 문을 이용하여 -1이 입력될 때까지 정수를 계속 입력받아 합을 구하고 평균을 출력하는 프로그램을 작성하라.

 

import java.util.Scanner;

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

        Scanner scanner = new Scanner(System.in);

        int sum = 0;
        double avg;
        int count = 0;
        int input = scanner.nextInt();
        while(input!= -1) {

            sum = sum + input;
            count ++;
            input = scanner.nextInt();

        }
        avg= (double)sum/count;

        System.out.print("합:"+sum+", 평균:"+avg);
        scanner.close();
    }
}

 

실행결과
38
20
-33
29
15
-1
합:69, 평균:13.8

 

정수를 입력받기 위해서 Scanner클래스를 이용한다. 입력받은 정수를 저장하기 위해서 sum을 선언하고, 입력받은 값들의 평균을 구하기 위해서 avg를 선언한다. 입력받은 값이 -1이 아닐동안에 값을 반복 입력받고 sum변수에 값을 계속 누적한다. 입력받은 값이 -1이라면, 이때까지 입력받은 값들의 합을 입력받은 횟수로 나누어서 평균을 구한다. 그리고 합과 평균을 출력한다.

 

조건식이 만족할 동안에 반복실행하기 때문에 scanner 메소드가 반복문 안에 있어야 한다.

 

do-whlie 문

 

do {
    ..작업문..
} while(조건식);

 

  • 작업문 실행 후 조건식을 검사하므로 작업문은 최초 한 번은 반드시 실행된다.
  • 조건식 뒤에 세미콜론을 빠뜨리지 않도록 한다.

 

예시

 

do-while 문을 이용하여 'a'부터 'z'까지 출력하는 프로그램을 작성하라.

 


public class DoWhileSample {
    public static void main(String[] args) {
        char c = 'a';

        do {
            System.out.print(c);
            c = (char)(c+1);
        }while(c<='z');
    }
}

 

실행결과
abcdefghijklmnopqrstuvwxyz

 

char 변수c 를 선언하고 문자리터럴 'a'로 초기화한다. do-while 문에서 일단 c 를 출력하고 c에 1만큼 더한 뒤(내부적으로는 c에 일대일대응되는 숫자값과 1을 더한 뒤 다시 char형으로 변환한다.), 이를 c가 'z'보다 작거나 같을 때가지 반복한다.

do-while 문을 활용하여 문자 리터럴과 문자열 사이의 개념을 다진 좋은 예제였다. 이 부분에 대해서는 나중에 추가적인 공부가 필요하리라 생각된다.

+ Recent posts