Java/Java의 정석
Chapter 04 - 조건문과 반복문
vividswan
2022. 4. 15. 23:18
Chapter 04 - 조건문과 반복문
- 조건문과 반복문에 따라 순차적으로만 진행되던 코드의 흐름을 바꿀 수 있다.
- 조건문은 조건에 따라 다른 문장 수행
- 반복문은 특정 문장들을 반복해서 수행
1.1 조건문 - if, switch
- 조건문은 조건식과 문장을 포함하는 블럭으로 구성
1.1 if문
- if문은 가장 기본적인 조건문
- 조건식과 괄호로 이루어짐
- 조건식이 참일 시 괄호 안의 문장을 수행
조건식
- 조건식은 일반적으로 비교연산자와 논리연산자로 구성
- 등가비교 연산자와 대입 연산자를 헷갈리지 말 것
블럭{}
- 괄호를 이용해서 여러 문장을 하나의 단위로 묶을 수 있고 이것을 블럭이라고 함
- 탭으로 들여쓰기를 해서 블럭 안에 속한 문장이라는 것을 쉽게 인지하도록 할 것
- 한 문장일 시 괄호 생략 가능
- 가능하면 써 줄 것
1.2 if-else문
- if문의 문장이 거짓일 시 else문 수행
- else문도 한 문장일 시 괄호 생략 가능
1.3 if-else if문
- 처리해야 할 경우의 수가 셋 이상일 시 사용
- 한 문장에 여러 개의 조건식을 쓸 수 있음
- 여러 else if문을 사용할 수 있으며 참인 조건식이 하나도 없으면 마지막의 else 블럭 수행
- else 블럭 생략 가능
1.4 중첩 if문
- if문의 블랙 내에 또 다른 if문을 포함시키는 것이 가능
- 중첩의 횟수는 제한이 없음
- 들여쓰기를 통해 if문의 구분을 확실히 할 것
- 괄호의 생략에도 주의할 것 -> 괄호를 명시하여 블럭끼리의 관계를 확실히 해줄 것
1.5 switch문
- switch문은 if문과 달리 단 하나의 조건식으로 많은 경우의 수 처리 가능
- 조건식을 계산 후 결과와 일치하는 case문으로 이동 후 이후의 문장들을 수행
- break문이나 switch문의 끝을 만날 때까지 진행
- 조건과 일치하는 case문이 하나도 없을 시 default문으로 이동
switch문의 제약조건
- switch문의 조건식 결과는 정수 또는 문자열
- case문의 값은 정수, 상수만 가능하고 중복 불가능
switch 중첩
- if문처럼 switch문도 중첩 가능
- 중첩 switch문에서 break문 빼먹지 않도록 주의
반복문 - for, while, do-while
- 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 수행
2.1 for문
- for문은 반복 횟수를 알고 있을 때 적합
for문의 구조와 수행 순서
for(초기화;조건식;증감식){
// 조건식이 참일 때 수행될 문장들
}
- 초기화 수행 후 조건식 -> 수행될 문장 -> 증감식의 순서
초기화
- 반복문에 사용될 변수를 초기화
- 처음에 한 번만 수행
- 콤마를 구분자로 변수로 두고 여러 변수를 선언 가능
조건식
- 조건식의 값이 true이면 반복, 거짓이면 반복 중단 후 for문을 벗어남
증감식
- 반복문을 제어하는 변수의 값을 증가 또는 감소
- 매 반복마다 변수의 값이 증감식에 의해 변함
- 다양한 연산자로 증감식 작성 가능
- 콤마를 이용해서 두 문장 이상을 하나로 연결 가능
중첩 for문
- for문 안에 또 다른 for문 포함 가능
2.2 while문
- 블럭만으로 이루어져 있으며 조건식이 참일 동안 블럭내의 문장을 반복
for문과 while문의 비교
- 항상 서로 변환이 가능
- while문 보다 for문이 더 간결하고 알아보기 쉬움
- 초기화나 증감식이 필요하지 않을 땐 while문이 더 적합
while문의 조건식은 생략 불가
- for문과 달리 생략할 수 없음
- 항상 참이 되도록 하기 위해선 반드시 true를 넣어야 함
- 무한 반복문을 벗어날 수 있도록 조건식 반드시 넣기
2.3 do-while문
- while문의 변형
- 조건식과 블럭의 순서를 바꿔놓음
- while문은 조건식의 결과에 따라 블럭이 한 번도 수행되지 않을 수 있지만 do-while문은 최소한 한 번은 수행될 것을 보장
2.4 break문
- break문은 자신이 포함된 가장 가까운 반복문을 벗어남
- if문과 함께 사용하여 특정 조건을 만족하면 반복문을 벗어나도록 함
2.5 continue문
- 반복문 내에서만 사용 가능
- continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어감
- 반복문 전체를 벗어나지 않고 다음 반복을 수행한다는 점이 break와 다름
2.6 이름 붙은 반복문
- break문은 근접한 단 하나의 반복문만 벗어날 수 있는 단점
- 이러한 단점을 극복하기 위해 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌
- 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있음
- ex) for문 앞에
loop1 :
<- 이런 식으로 이름을 정해준 뒤break loo1;
과 같은 방식으로 벗어남