Chapter 04 조건문과 반복문
1. 조건문 - if, switch
if
문의 변형인 if-else
문의 구조는 다음과 같다. if
문에 'else블럭'이 더 추가되었다. 'else'의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다.
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
} else {
// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}
조건식의 결과에 따라 이 두 개의 블럭{} 중 어느 한 블럭{}의 내용이 수행되고 전체 if
문을 벗어나게 된다. 두 블럭{}의 내용이 모두 수행되거나, 모두 수행되지 않는 경우는 있을 수 없다.
if-else
문은 두 가지 경우 중 하나가 수행되는 구조인데, 처리해야할 경우의 수가 셋 이상인 경우에는 어떻게 해야 할까? 그럴 때는 한 문장에 여러 개의 조건식을 쓸 수 있는 if-else if
문을 사용하면 된다.
if (조건식1) {
// 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식3) { // 여러개의 else if를 사용할 수 있다.
// 조건식3의 연산결과가 참일 때 수행될 문장들을 적는다.
} else {
// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}
첫 번째 조건식부터 순서대로 평가해서 결과가 참인 조건식을 만나면, 해당 블럭{}만 수행하고 if-else if
문 전체를 벗어난다.
만일 결과가 참인 조건식이 하나도 없으면, 마지막에 있는 else블럭의 문장들이 수행된다. 그리고 else블럭은 생략이 가능하다. else블럭이 생략되었을 때는 if-else if
문의 어떤 블럭도 수행되지 않을 수 있다.
if
문의 블럭 내에 또 다른 if
문을 포함시키는 것이 가능한데 이것을 중첩 if
문이라고 부르며 중첩의 횟수에는 거의 제한이 없다.
if (조건식1) {
// 조건식1이 true일 때 수행될 문장들을 적는다.
if (조건식2) {
// 조건식1과 조건식2가 모두 true일 때 수행될 문장들
} else {
// 조건식1이 true이고, 조건식2가 false일 때 수행되는 문장들
}
} else {
// 조건식이 flase일 때 수행될 문장들
}
위와 같이 내부의 if
문은 외부의 if
문보다 안쪽으로 들여쓰기를 해서 두 if
문의 범위가 명확히 구분될 수 있도록 작성해야 한다.
📑 원본 자료
- Java의 정석(3판) [남궁 성/도우출판/2016]