[ JAVA ] 기본 문법 - 반복문
반복문 : 특정 코드를 반복해서 실행
- while문
- do-while문
- for문
while문 : 조건문이 참일 동안 반복해서 실행
while (condition) {
}
do-while문 : while문과 유사하나 조건에 상관없이 무조건 한 번은 코드를 실행
do {
//실행할 코드
} while (조건식);
break, continue : 반복문에서 사용할 수 있는 키워드
break : 반복문을 즉시 종료하고 빠져나옴
continue : 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행함
1부터 5까지 숫자를 출력하는데, 숫자가 3일 때는 출력을 건너뜀
package loop;
public class Continue1 {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
if (i == 3) {
i++;
continue;
}
System.out.println(i);
i++;
}
}
}
for문 : 주로 반복 횟수가 정해져 있을 때 사용
for (초기식 ; 조건식; 증감식){
}
초기식, 조건식, 증감식은 모두 선택임. 모두 생략 가능함. 생략하더라도 세미콜론(;)은 작성해야 함.
for each문 : for each 문은 J2SE 5.0부터 추가됨. for each라는 키워드가 따로 있는 것은 아니고 앞서 배운 for 문을 이용함. 하지만 조건문의 문법이 조금 다름
for (type 변수명: iterate) {
}
: iterate는 루프를 돌릴 객체이고 iterate 객체에서 한 개씩 순차적으로 변수명에 대입되어 for 문이 수행된다. iterate에 사용할 수 있는 자료형은 루프를 돌릴 수 있는 자료형(배열이나 ArrayList 등)만 가능함. 그리고 변수명의 type(자료형)은 iterate 객체에 포함된 자료형과 일치해야 함.
다음은 ArrayList로 구현한 예제이다. for 문의 사용법은 String[] 배열을 사용했을 때와 동일하다.
import java.util.ArrayList;
import java.util.Arrays;
public class Sample {
public static void main(String[] args) {
ArrayList<String> numbers = new ArrayList<>(Arrays.asList("one", "two", "three"));
for (String number : numbers) {
System.out.println(number);
}
}
}
단, for each 문은 따로 반복 횟수를 명시적으로 주는 것이 불가능하고, 한 단계씩 순차적으로 반복할 때만 사용이 가능하다는 제약이 있음.
for-each문 장점
- for-each문은 반복자나 인덱스 변수를 사용하지 않아 코드가 깔끔해지고, 오류가 발생할 일도 없음
-
하나의 관용구로 컬렉션과 배열 모두 처리할 수 있어, 어떤 컨테이너를 사용하는지 신경쓰지 않아도 됨
-
for-each문을 사용하는 것은 for문을 사용하는 것과 속도가 같음
-
컬렉션을 중첩해 사용한다면, 실수를 예방할 수 있음