선택문 반복문
코드의 실행 흐름은 무조건 위에서 아래로 한 문장씩 순차적으로 진행되지만 조건에 따라 문장을 건너뛰고 때로는 한 문장을 반복해서 수행해야할 때가 있다. 이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 제어문이라고 한다.
가장 기본적인 조건문으로 조건식과 괄호로 이루어져 있다.
if (조건식) {
// 조건식이 참일 떄 수행될 문장들
}
if문에 else블럭이 추가된 형식. 조건식의 결과가 참이 아닐 때 else블럭을 수행시킨다. 따라서 조건식의 결과에 따라 두 개의 블럭중 하나는 무조건 수행된다. 두 개의 블럭이 모두 수행되거나 수행되지 않는 경우는 있을 수 없다.
if(조건식) {
// 조건식이 참일 때 수행될 문장들
} else {
// 조건식이 거짓일 때 수행될 문장들
}
If-then, if-then-else 문과는 다르게 switch문은 여러개의 선택지를 가질 수 있다. 그 선택지는 byte, short, char, int와 같은 프리미티브 데이터 타입과 String 타입, 또는 enum타입이어야 한다. switch라고 쓰여져있는 부분을 switch문, 또는 switch블럭이라고 하고 스위치블럭 안의 코드들은 case나 default로 레이블될 수 있다. 해당 조건식을 만족하는지에 따라 맞는 case나 default가 실행된다.
int number = 3;
String numToString;
switch (number) {
case 1: numToString = "One";
break;
case 2: numToString = "Two";
break;
case 3: numToString = "Three";
break;
}
System.out.println(numToString); // 'Three'가 출력
switch문은 if-then-else로 바꿀 수 있다. 조건문을 if-then-else로 할 지 switch로 할 지는 결정하는 건 코드의 가독성과 안에 들어가는 조건식 자체가 무엇을 판단하고자 하는지에 있다. If-then-else의 조건식이 값의 범위나 상태를 판단한다면 switch의 조건식은 한 정수값, 또는 enum 값, 또는 String 값만을 나타낼 수 있다.
어떤 작업이 반복적으로 수행되도록 할 때 사용된다.
for문은 초기화, 조건식, 증감식으로 이루어져있고 조건식이 참인 경우 블럭안의 코드들이 수행된다. 제일 먼저 초기화가 수행되고 조건식이 맞으면 블럭이 수행되고 증감식이 실행된다. 조건식이 거짓이 되면 블럭을 빠져나와 for문 다음의 코드가 수행된다.