자바의 정석4장
이 글은 Java의 정석 3rd Edition을 읽고 정리한 내용입니다.
Chapter 4

조건문과 반복문
1.조건문과 반복분
- 조건문 : 조건이 주어질 때 어떤 동작을 수행하도록 하는, 즉 조건에 따라 실행이 달라지게 할 때 사용되는 문장이다.
- 반복문 : 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.
- 조건문은 크게 if,switch가 있고 반복문은 for문과 while문이 있다.
조건문
조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며 조건식의 연산결과에 따라 실행할 문장이 달라진다.
1-1. if문
if문은 기본적인 조건문으로 조건식과 괄호로 이루어 져있으며 조건식이 참이면 괄호 안의 문장을 수행한다.
if(조건식) {
// 조건식이 true일떄 수행될 문장들을 적는다.
}
조건식
- 조건식은 일반적으로 비교연산자와 논리 연산자로구성된다.
- 조건식의 결과는 반드시 true 또느 false이어야 한다.
1-2. if - else
if문은 변형 구조로 else가 더 추가된 방식이다. 조건식의 결과가 참이아닌 flase 값을 가졌을떄 else 블럭 내 명령어를 수행하라는 의미를 가진다.
if(조건식){
// 조건식이 true 수행 코드
} else {
// 조건식이 false 수행 코드
}
1-3. if - else if문
위에 if - else 구조의 조건문에선 두가지 조건만 확인 가능하다. 처리해야 되는 조건이 3개 이상인 경우는 if - else if 문을 사용해야 한다.
if(조건식1){
// 조건식1이 참일때 수행할 문장 false일 경우 다음 조건식2를 확인함
} else if(조건식2){
// 조건식2이 참일때 수행할 문장 false일 경우 다음 조건식3을 확인함
} else if(조건식3){
// 조건식3이 참일때 수행할 문장
} else{
// 조건식 1 2 3 전부 flase 일때 수행할 문장
}
1.4 중첩 if 문
if문의 블럭 내부에 if문을 포함시키는 방식 연속으로 조건을 확인하고 싶은경우에 사용된다.
if(조건식1){
// 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다.
if(조건식2){
//조건식1과 조건식2가 모두 true일 때 수행될 문장들
}
else{
// 조건식1이 ture 이고, 조건식2가 flase일 때 수행되는 문장들
}
} else{
// 조건식 1이 false일떄 수행되는 문장들
}
1.5 switch문
if문과 같이 조건식을 비교하는 조건문으로 분기의 경우가 많아질 경우 if문보단 switch문이 가독성을 좋게 한다.
switch 문은 조건식을 계산한 후 결과가 일치하는 case문으로 이동하여 case블록의 문장들을 수행하고 break를 만나면 종료된다.
switch(조건식){
case 값1 :
// 조건식의 결과와 값1의 값이 같은경우 수행되는 문장들
break;
case 값2 :
// 조건식의 결과와 값2의 값이 같은경우 수행되는 문장들
break;
case 값3 :
// 조건식의 결과와 값3의 값이 같은경우 수행되는 문장들
break;
default :
//조건식의 결과와 값이 일치하는 경우가 없을때 수행되는 문장
}
2. 반복문
반복문은 어떤 작입이 반복적으로 수행되도록 할때 사용되며 for,while,do-while문이 있다.
주어진 조건의 결과가 true면 반복문을 실행하고 false면 반복문을 실행하지 않는다.
while과 for 둘다 반복문으로 사용 가능 하지만 주로 for문은 반복 횟수를 알고 있을때 사용된다.
2-1 for문
for문은 반복 횟수를 알고 있을 때 적합하다. 구조가 직관직이고 이해가 쉽다.
for(int i=0; i<5; i++){
System.out.println("Hello nice to meet you")
}
- 지역변수 int i = 0 초기화
- 조건식의 확인 (i < 5 => 0 < 5 )
- true일시 밑의 출력문 수행
- i값 1증가(i = 1)
- 위의 과정 반복 조건식이 false일 경우 반복문 종료
2-2 while 문
for 문에 비해 구조가 간단하다.
조건식을 평가해서 조건식이 거짓이면 문장을 벗어나고 참이면 블럭 내의 문장을 수행하고 다시 조건식으로 돌아간다.
while(조건식){
// 수행될 문장
}
2-3 do - while 문
while문의 기본구조는 똑같으나 do 블록에 있는 문장을 수행하고 while문의 조건식을 확인하는 순서를 가진 반복문이다.
따라서 기본적으로 do-while문은 최소한 한번이상은 수행될 것을 보장한다.
do{
//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
}while(조건식);
2-3 break 문
반목문에서도 break문을 사용할 수있다. break는 현재 실행중인 반복문을 탈출하는 명령어이다.
주로 반복문 내부에 if문을 사용해 특정 조건을 만족하면 반복문을 벗어나는 식으로 활용한다,
int i = 0;
while(true){
if(i == 0) break;
i++;
}
- int i = 0 초기화
- while 조건식 확인(true 무한 반복)
- if문 조건확인
- true : 반복문 종료
- false : i 값 1증가;
- 위의 과정 반복
2-4 continue 문
반복문 내에서 사용가능한 명령어로 반복문 진행도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
for(int i =0; i<10; i++){
if(i % 2 == 0){
continue;
}
System.out.println(i + "는 홀수입니다");
}
result
1는 홀수입니다
3는 홀수입니다
5는 홀수입니다
7는 홀수입니다
9는 홀수입니다
- 반복문 실행
- 나머지 연산을 결과와 비교연산자를 통해 if 문 조건식 확인
- 나머지가 0일때: 반복문의 맨 밑으로 내려가고 다음 반복확인)
- 나머지가 1일떄: 출력문 실행 다음 반복 확인
- 위 과정 반복