조건문
조건식에 따라 명령을 수행하도록 제어하는 명령문으로 자바에는 if, switch문이 있다.
if문
가장 기본적인 조건문이며 조건식이 참이면 괄호 내의 문장을 수행한다. 이때 조건식의 결과는 반드시 true나 false 이여야 한다.
if (조건식){
//수행될 코드
}
처리해야 할 조건식이 여러 개인 경우 else if문을 사용할 수 있으며 else 블럭에서 위의 조건식들이 모두 거짓인 경우를 처리할 수 있다.
if (조건식){
//조건식이 참일 때 수행할 코드
} else if(조건식2){
//조건식2가 참일 때 수행할 코드
} else{
//위의 조건식들이 모두 거짓일 때 수행할 코드
}
if문 내에 다른 if문을 사용할 수도 있다.
if (조건식){
if (조건식2){
//조건식과 조건식2가 참인 경우 수행할 코드
}
}
switch
switch문은 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
switch(조건값){
case 값1:
//조건값이 값1일 때 수행할 코드
break;
case 값2:
case 값3:
//조건값이 값2나 값3일 때 수행할 코드
break;
default:
//조건값이 어떤case와도 매칭되지 않을 때 수행할 코드
break;
}
switch문에서는 case문의 구분을 break로 하는데 break문을 넣지 않으면 다른 break를 만날 때까지 차례대로 수행하며 break가 없는 경우 switch문이 끝나는 지점까지 수행하게 된다.
char ch = 'a';
switch (ch){
case 'a':
System.out.println("값은 a");
case 'b':
System.out.println("값은 b");
case 'c':
System.out.println("값은 c");
default:
System.out.println("abc가 아닌 나머지");
}
출력 결과
값은 a
값은 b
값은 c
abc가 아닌 나머지
값은 a만 출력되는 게 아닌 모든 case와 default문이 수행되었다.
반복문
어떠한 작업을 반복적으로 수행할 때 사용되며 for, while, do-while문이 있다.
for
for문은 반복될 횟수를 알고 있을 때 사용한다.
제일 먼저 초기화가 수행되고 그 이후부터 조건문이 참이면 {}블럭 안의 코드를 수행하고 증감식을 수행을 반복한다. 조건문이 거짓이 되면 for문을 종료한다.
for (초기화;조건문;증감식){
//조건문이 참이면 수행될 코드
}
향상된 for
Java 1.5부터 배열과 컬렉션에 접근할 때 편리한 방법으로 처리할 수 있도록 추가된 부분이다.
for (type 변수명:배열이나 컬렉션){
//반복될 코드
}
타입은 배열이나 컬렉션의 요소의 타입이어야 하며 순차적으로 변수명에 대입되어 반복문을 수행하게 된다.
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
String[] strs = {"Hello","World"};
for(String str:strs){
System.out.println(str);
}
출력결과
0
1
2
Hello
World
while
while문은 조건식이 참인 동안 반복하며 거짓이 되면 종료되며 while문 내에 조건식의 결과를 변경하는 코드가 없을 시 무한루프에 빠지게 되므로 조건식이 false가 되게 하는 명령문을 포함해야 합니다.
while (조건식){
//반복할 코드
}
int i=0;
while(i<3){
System.out.println(i);
i++; //없으면 무한루프
}
출력 결과
0
1
2
do while
while문이 조건식을 먼저 확인하고 실행한다고 하면 do while은 {}블럭을 한번 실행 후 조건식이 참인지 확인합니다.
do{
//반복할 코드
}while(조건식)
break와 continue
둘 다 반복문에서 사용 가능하며 반복문의 흐름을 제어하기 위해 사용됩니다.
break
해당 반복문을 조건식과 관계없이 반복문을 빠져나가 다음 명령문을 수행합니다.
for (int i = 0; i < 10; i++) {
if (i == 3)
break;
System.out.print(i + " ");
}
출력 결과
0 1 2
continue
반복문 내에서만 사용할 수 있으며 continue를 만나면 반복문 내에서 continue 다음 오는 명령을 건너뛰고 다음 조건식으로 넘어갑니다.
for (int i = 0; i < 5; i++) {
if (i == 3)
continue;
System.out.print(i+" ");
}
출력 결과
0 1 2 4
참고 문서
Java의 정석 - 남궁 성
http://www.tcpschool.com/java/intro