Java 제어문(Control statement)의 반복문(Loop Control)
반복문(Loop Control)
자바에는 for
, while
, do-while
문과 J2EE 5.0에서 추가된 for~each
문이 있다. 반복문들은 지정된 문장을 조건이 만족할 때까지 반복한다. 조건을 지정하는 방법에 따라 for
, while
, do-while
, for~each
문이 구분되어 사용된다. 반복될 문장이 한 문장일 경우에는 블럭으로 지정하지 않아도 되지만, 한 문장 이상일 경우에는 중괄호({ }
)를 사용하여 블록으로 지정해야 한다.
for
문
for
문은 주어진 초기값을 시작으로 조건을 만족하는 동안 for
블록을 반복 실행하는 명령문이다.
for (초기값; 조건식; 증감값) {
반복 실행 문장;
}
for
문이 시작되면, 초기값이 부분이 한번만 실행된다.다음 조건식이 실행되는데, 이 조건식은 반듯이 부울 식이어야 한다. 이 조건식이 false가 되면 반복문은 종료된다. 증감값은 반복 제어 변수를 증가시키거나 감소시키는 식이 온다. 처음 조건식이 실행된 다음에 실행 문장이 실행되고, 증감값이 실행을 한 다음에 조건식을 실행하고 실행 문장이 실행되는 반복을 하게 된다.
다음은 1부터 100까지 합을 구하는 예제이다.
package com.devkuma.tutorial.control.statement;
public class For1 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
}
for문의 초기값, 조건식 증감값에서 하나 이상의 문장을 나열하고 싶은 경우에는 콤마(,)를 사용하여 선언 할 수 있다.
아래 두 예제는 동일한 결과를 출력한다.
package com.devkuma.tutorial.control.statement;
public class For2 {
public static void main(String[] args) {
int a, b;
b = 4;
for (a = 1; a < b; a++) {
System.out.println("a=" + a + ", b=" + b);
b--;
}
}
}
package com.devkuma.tutorial.control.statement;
public class For3 {
public static void main(String[] args) {
int a, b;
for (a = 1, b = 4; a < b; a++, b--) {
System.out.println("a=" + a + ", b=" + b);
}
}
}
for ~ each
문
JDK 1.5에 처음으로 for으로 또는 또 다른 형식인 for~each
문장을 추가되었다.
for~each문은 컬렉션 타입(collection type)의 데이터에서 데이터가 존재하는 횟수 만큼 반복적으로 실행하는 명령문이다.
for (변수 : 컬렉션) {
반복 실행 문장;
아래 예제는 배열과 컬렉션 타임의 데이터를 사용한 예제이다.
package com.devkuma.tutorial.control.statement;
import java.util.ArrayList;
import java.util.List;
public class ForEach {
public static void main(String[] args) {
String array[] = { "A", "B", "C" };
for (String a : array) {
System.out.println("a=" + a);
}
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
for (String l : list) {
System.out.println("l=" + l);
}
}
}
while
문
while 문은 조건절이 참일 동안 while
블록을 반복 실행한다.
while (조건식) {
반복 실행 문장;
}
while문을 사용한 예제는 아래와 같다.
package com.devkuma.tutorial.control.statement;
public class While {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("sum=" + sum);
}
}
do ~ while
문
적어도 한번은 수행될 수 있는 반복문이다.
do {
반복 실행 문장;
} while (조건식)
do ~ while
문을 사용한 예제는 아래와 같다.
package com.devkuma.tutorial.control.statement;
public class DoWhile {
public static void main(String[] args) {
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 100);
System.out.println("sum=" + sum);
}
}
while
문과 do ~ while
문의 차이는 조건식을 언제 확인하는지가 다르다.