1. if문
지금까지 코드의 실행 흐름이 무조건 위에서 아래로 한 문장씩
순차적으로 진행되었지만 때로는 조건에 따라 문장을 건너띄고
때로는 같은 문장을 반복해서 수행해야할 때가 있다
이처럼 흐름을 바꾸는 역할을 하는 문장들을 제어문이라고 한다
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다
}
2. 블럭 { }
여러 문장을 하나의 단위로 묶을 수 있는데 이를 블럭이라 한다
한 문장만 넣을때는 블럭을 생략 할 수도 있다
1번 스타일
if (조건식) {
}
2번 스타일
if (조건식)
{
}
3 한문장이라 생략한 스타일
if (조건식)
System.out.println("합격입니다");
또는
if (조건식) System.out.println("합격입니다");
3. if - else 문, if - else if 문
if문에서 else문이 추가되었는데 조건이 false일때를 뜻한다
if (조건식) {
// 조건식이 참(ture)일 때 수행될 문장들을 적는다
} else {
// 조건식이 거짓(false)일 때 수행될 문장들을 적는다
}
처리해야 할 경우의 수가 셋 이상일 때 if else if 문을 이용한다
if (조건식 1) {
// 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다
} else if(조건식 2) { // 여러 개의 else if를 사용할 수 있다
// 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다
} else { // 마지막은 보통 else로 끝내지만 else 블럭은 생략 가능하다
// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다
}
4. 중첩 if문
if문 안에 if문을 포함시키는것을 뜻하고 중첩의 횟수에 제한은 없다
if (조건식 1) {
// 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다
if(조건식 2) {
// 조건식1과 조건식2가 모두 true일 때 수행될 문장들
} else {
// 조건식1이 true이고, 조건식2가 false일 때 수행되는 문장들
}
}else {
// 조건식1이 false일 때 수행되는 문장들
}
5. switch문
경우의 수가 많아질수록 else if를 계속 추가해야 하므로 복잡해진다
단 하나의 조건식으로 많은 경우의 수를 처리할때는 switch문을 쓴다
switch (조건식) {
case 값1 :
// 조건식의 결과가 값1과 같을 경우 수행될 문장들
break;
case 값2 :
// 조건식의 결과가 값2와 같을 경우 수행될 문장들
break;
default :
// 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
}
만약 중간에 break 가 없으면 해당 case 부터 끝 문장 즉 모든 문장이 수행된다
제약조건
1) switch문의 조건식 결과는 정수 또는 문자열이어야 한다
2) case문의 값은 정수 상수(문자 포함), 문자열만 가능하며 중복되지 않아야 한다
int num, result;
final int ONE = 1;
switch(result) {
case '1': // ok. 문자 리터럴(정수 49와 동일)
case ONE: // ok. 정수 상수
case "YES": // ok. 문자열 리터럴 JDK 1.7부터 허용
case num: // error. 변수는 불가
case 1.0: // error. 실수도 불가
}
6. for문
어떤 작업이 반복적으로 수행되도록 할 때 사용된다
for (초기화; 조건식; 증감식) {
// 조건식이 참(true)인 동안 수행될 문장들을 적는다
}
초기화
반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행한다
보통 변수 하나로 제어하지만 둘 이상의 변수가 필요하면 콤마로 구분한다
for(int i=1; i<10; i++) { } // 변수 i의 값을 1로 초기화 한다
for(int i=0, j=0; i<10; i++, j++) { } // int 타입의 변수 i와 j를 0으로 선언하고 초기화 한다
조건식
조건식의 값이 참(true)이면 반복을 계속하고 거짓(false)이면
반복을 중단하고 for문을 벗어난다
조건을 잘못주면 무한루프에 빠질 수 있다
증감식
반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다
매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가
결국 조건식이 거짓이 되어 for문을 벗어나게 된다
7. 중첩 for문
for문 안에 또 다른 for문을 포함시키는것을 뜻한다
보통 바깥 for문이 열 안쪽 for문이 행이라고 보면 된다
for(int i=0; i<5; i++) {
for(int j=0; j<5; j++) {
System.out.print("*");
}
System.out.println();
}
8. while문
while(조건식) {
// 조건식의 연산결과가 참(true)인 동안 반복될 문장들을 찍는다
}

9. do while 문
while문은 조건식의 결과에 따라 블럭이 한 번도 수행되지 않을 수 있지만
do while문은 최소한 한번은 수행될 것을 보장한다
do {
// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다 (처음 한 번은 무조건 실행)
} while(조건식); <- 끝에 ; 를 붙여야한다
10. break 문
반복문에서도 break문을 사용할 수 있는데
break문은 자신이 포함된 가장 가까운 반복문을 벗어난다
주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 한다
11. continue 문
continue문은 반복문 내에서만 사용될 수 있으며
반복이 진행되는 도중에 continue문을 만나면
반복문의 끝으로 이동하여 다음 반복으로 넘어간다
for문의 경우 증감식으로 이동하며
while문과 do while문의 경우 조건식으로 이동한다
continue문은 반복문 전체를 벗어나지 않고
다음 반복을 계속 수행한다는 점이 break문과 다르다
주로 if문과 함께 사용되어 특정 조건을 만족하는 경우에 continue 문 이후
문장들을 수행하지 않고 다음 반복으로 넘어가서 계속 진행된다
for(int i=0; i<10; i++) {
if (i%3==0) {
continue;
}
System.out.println(i);
}
12. 이름 붙은 반복문
break문은 근접한 단 하나의 반복문만 벗어날 수 있다
여러개의 반복문이 중첩된 경우에는 중첩 반복문을 완전히 벗어날 수 없다

참고
- 자바의 정석
'자바의 정석 스터디 정리' 카테고리의 다른 글
[자바의 정석 스터디] Chapter 6. 객체지향 프로그래밍 1 (0) | 2022.12.29 |
---|---|
[자바의 정석 스터디] Chapter 5. 배열 (0) | 2022.12.22 |
[자바의 정석 스터디] Chapter 3. 연산자 (0) | 2022.12.20 |
[자바의 정석 스터디] Chapter 2. 변수 (0) | 2022.12.19 |
[자바의 정석 스터디] Chapter 1. 자바를 시작하기 전에 (2) | 2022.12.18 |