- 조건식은 일반적으로 비교연산자와논리연산자로 구성 (반드시 true 혹은 false의 값을 가져야 함)
- 블럭(block) : 괄호 '{ }'를 이용해서 여러 문장을 하나의 단위로 묶음
[잘못된 예시] if(score > 60) System.out.println("합격"); // if문에 속한 문장 System.out.println("축하"); // if문에 속하지 않은 문장
[올바른 예시] if(score > 60) { System.out.println("합격"); // if문에 속한 문장 System.out.println("축하"); // if문에 속한 문장 }
-> 블럭 내의 문장이 하나라면 괄호를 생략할 수 있지만, 여러 문장일 경우 꼭 괄호로 묶어줘야 함
2) if-else문
if (조건식) { // 조건식이 참(true)일 때 수행될 문장 } else { // 조건식이 거짓(false)일 때 수행될 문장 }
3) if-else if문
if (조건식1) { // 조건식1이 참(true)일 때 수행될 문장 } else if (조건식2) { // 조건식2이 참(true)일 때 수행될 문장 } else if (조건식3) { // 조건식3이 참(true)일 때 수행될 문장 } else { // 조건식1,2,3이 모두 거짓(false)일 때 수행될 문장 }
4) 중첩 if문
if (조건식1) { // 조건식1이 참(true)일 때 수행될 문장 if (조건식2) { // 조건식1이 true면서 조건식2가 true일 때 수행될 문장 } else { // 조건식1이 true면서 조건식2가 false일 때 수행될 문장 } } else { // 조건식1이 거짓(false)일 때 수행될 문장 }
5) swtich문
switch (조건식) { case 값1 : // 조건식의 결과가 값1과 같을 경우 수행될 문장 break; case 값2 : // 조건식의 결과가 값2와 같을 경우 수행될 문장 break; default : // 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들 }
- 조건식의 결과는 정수, 문자열만 가능
- case문의 값은 정수, 상수만 가능하며 중복 불가능 (변수, 실수 불가능!)
- 조건식의 결과와 일치하는 case문이 하나도 없는 경우 default문으로 이동
- break문을 사용하지 않으면 다른 break문을 만나거나 switch문 블럭의 끝을 만날 때까지 나오는 모든 문장들을 수행하므로 의도한게 아니라면 case문 끝에 break를 써주는 것을 잊지 말아야 함 (맨 마지막은 생략 가능)
- switch문도 if문처럼 중첩이 가능함
3. 반복문 - for, while, do-while
1) for문
- 주로 반복횟수를 알고 있을 때 사용
for(int i=1; i<=5; i++) { // 반복 수행할 문장 } 1) 초기값: 반복문에 사용될 변수를 초기화하며 처음 한번만 수행, 둘 이상의 변수 선언 가능 (타입이 같아야 함) ex) for(int i=1, j=0; i<=5; i++) { ... } 2) 조건식: 조건식의 값이 참(true)이면 반복을 계속하고, 거짓(false)이면 반복을 중단하고 for문을 벗어남 3) 증감식: 반복문을 제어하는 변수이 값을 증가 또는 감소시킴
-> 세 요소는 필요하지 않으면 생략할 수 있으며, 모두 생략도 가능함 ex) for(;;) { ... }
2) 중첩 for문
- for문안에 for문을 포함시킬 수 있음
for(int i=1; i<=5; i++) { for(int j=1; j<=10; j++) { // 반복 수행할 문장 } // 반복 수행할 문장 }
3) 향상된 for문(enhanced for statement)
- JDK1.5부터 for문의 새로운 문법이 추가되었음
- 타입은 배열 또는 컬렉션의 요소의 타입이어야 함
- 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장됨
for( 타입 변수명 : 배열 또는 컬렉션) { // 반복 수행할 문장 }
4) while문
- 먼저 조건식을 평가해서 조건식이 거짓이면 문장 전체를 벗어나고, 참이면 블럭 내의 문장을 수행하고 다시 조건식으로 돌아감
- 조건식이 거짓이 될 때까지 이 과정이 계속 반복됨
- 조건식은 생략 불가능
- 조건식에 true를 넣으면 무한루프에 빠질 수 있음에 주의
while (조건식) { // 조건식의 연산결과가 참(true)일 동안, 반복 수행할 문장 }
5) do-while문
- 최소한 한번은 수행될 것을 보장하는 while문
- while문과 반대로 블록 내의 문장을 먼저 수행한 후 조건식을 평가함
- while(조건식) 뒤에 세미콜론(;)을 붙여야 함에 유의
do { // 조건식의 연산결과가 참(true)일 동안, 반복 수행할 문장 } while (조건식);
6) break문
- 자신이 포함된 가장 가까운 반복문을 벗어남
- 무한 반복문에 조건문과 break문을 같이 사용할 수 있음
7) continue문
- 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어감
- 전체 반복 중에 특정조건을 만족하는 경우를 제외하고자 할 때 사용
8) 이름 붙은 반복문
- 여러 개의 반복문이 중첩된 경우 break문으로 중첩 반복문을 완전히 벗어날 수 없음
- 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있음