[JAVA] 조건문과 반복문
조건문과 반복문 설명
조건문
- 조건식의 연산결과에 따라서 실행할 문장이 달라질 수 있음
- if문과 switch문이 있으며 주로 if문이 사용된다.
반복문
- 어떠한 작업을 반복적으로 수행하여야 할 때 사용된다.
- 반복문의 종류는 for문, while문, do-while문이 있다.
조건문의 이해
if문
- 조건식과 괄호로 이루어져 있다.
- 만약 ~라면,으로 참이면 괄호 안의 문장들이 수행한다.
1
2
3
if (조건식) {
// 조건식이 참일 경우 수행
}
- 조건식은 괄호(블록) 내에서는 탭(TAB)으로 들여 쓰기를 하고 코드를 작성하면 좋다.
if-else문
- if문과 비슷하며 if 조건식이 거짓일 경우 else 괄호 내에 있는 문장들이 수행된다.
1
2
3
4
5
if (조건식) {
// 조건식이 참일 경우 수행
} else {
// 조건식이 거짓일 경우 수행
}
if-else if문
- 처리해야 하는 경우의 수가 셋 이상일 경우 else if문으로 조건식을 추가하여 수행할 수 있다.
1
2
3
4
5
6
7
if (첫 번째 조건식){
// 조건식이 참일 경우 수행
} else if (두 번째 조건식){
// 두 번째 조건식이 참일 경우 수행
} else{
// 위 조건식이 모두 참이 아닐 경우 수행
}
- if문은 첫 조건식부터 순서대로 연산하여 수행한다.
중첩 if문
- if문 블록 내에서 if문을 다시 사용할 수 있으며 중첩의 횟수는 제한이 없다. 이를 중첩 if문이라고 부른다.
1
2
3
4
5
6
if (첫번째 조건식){
// 첫번재 조건식이 참일 경우 수행
if (두번째 조건식){
// 첫번째 조건식이 참이면서 두번째 조건식이 참일 경우 수행
}
}
switch문
- 조건식의 경우의 수가 많아질수록 else-if문을 계속 추가해야 하는데 그럴수록 조건식이 많아져 복잡해지고 처리시간도 오래 걸린다.
- 이럴 경우 switch문을 사용하면 표현도 간결하고 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
1
2
3
4
5
6
7
8
switch (조건식) {
case 값1:
// 값1이 조건식과 같을 경우 수행
case 값2:
//값2가 조건식과 같을 경우 수행
default:
// 위 case 조건식과 모두 같지 않을 경우 수행
}
- 조건식과 값이 같을 경우 해당 case 블록 내에 있는 값이 수행되며 default는 if-else문의 else문과 같다고 생각하면 좋다.
switch문의 제약조건
- switch문의 조건식은 결과값이 반드시 정수이어야 한다.
- 값과 일치하는 case문으로 이동하기 때문에 case문 값도 역시 정수 이어야 한다.
- 또한 중복되지 않아야 한다.
switch문의 중첩
- switch문도 역시 중첩 사용이 가능하다.
반복문의 이해
for문
- for문은 반복 횟수를 알고 있을 때 용이하다.
1
2
3
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
- 위의 반복문 경우
int i=1
은 1부터 시작하며i<=5
5보다 작거나 같을 때까지(5까지) 블록 내의 문장을 수행하며i++
매 반복문이 끝날 때마다 i의 값을 1을 증가시킨다.라는 의미이다.- 간단하게 1부터 5까지 총 5번 수행되며 코드를 실행할 경우 1부터 5까지 출력이 된다.
1
2
3
for (초기화; 조건식; 증감식) {
//조건식이 참일 경우 수행
}
초기화
- 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한 번만 수행된다.
조건식
- 조건식이 값이 참(true) 일 경우 반복문 블록을 수행하며, 거짓(false) 일 경우 반복을 중단하고 for문을 벗어난다.
- 간단하게 조건식이 ‘참일 경우에만 반복문을 실행한다. ’라고 생각하면 된다.
증감식
- 반복문을 제어하는 변수의 값을 증가나 감소시키는 식
- 매 수행할 때마다 증가나 감소가 되며 조건식이 거짓이 되어 for문을 벗어나게 된다.
- 주로 연산자 ‘++’이 사용되지만 그 외 다양한 연산자로도 활용할 수 있다.
중첩 for문
- for문 내에서 ‘중첩 if문’처럼 for문을 사용할 수 있다.
향상된 for문
- for문을 배열과 컬렉션에 저장된 요소에 접근할 때 보다 편리한 방법으로 처리할 수 있다.
1
2
3
for (타입 변수명 : 배열 또는 컬렉션){
// 반복할 문장
}
1
2
3
4
5
6
7
8
9
10
11
int [] arr = {1,2,3,4,5};
// (1)
for(int i=0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// (2)
for(int tmp : arr) {
System.out.println(tmp);
}
- 1번 반복문을 2번 반복문처럼 사용이 가능하다.
while문
- if문처럼 조건식과 블록만으로 이루어져 있다.
- if문과 달리 while문의 조건식이 거짓이 될 때까지 블록(반복할 문장) 내에 있는 문장을 반복한다.
1
2
3
while (조건식) {
// 조건식의 연산결과가 참일 경우 동안만 수행
}
- 한 번씩 조건식이 참일 경우까지인지 거짓일 경우까지인지 헷갈린다.
- ‘~할 때까지’라고 생각하면 기억하기 쉽다.
do-while문
- while문의 변형으로 구조는 while문과 같지만 조건식과 블록의 순서가 바뀐 게 do-while문이다.
- while문과 다르게 블록을 먼저 수행하고 조건식을 평가하는 게 do-while문의 특징이다.
1
2
3
do {
//조건식의 연산결과가 참일 경우 수행
} while (조건식);
- 자주 사용되진 않지만, 반복적으로 사용자의 입력을 받아서 처리할 경우 유용하다.
break문과 continue문
break문
- 자신이 포함된 가장 가까운 반복문을 벗어나야 할 때 사용한다.
- 특정 조건이 만족될 때 사용한다.
continue문
- 반복문 내에서만 사용될 수 있으며, 반복문이 수행되는 중 반복문의 끝으로 이동하여 다음 반복문으로 넘어갈 때 사용한다.
- break문은 반복문을 벗어나지만, continue는 해당 반복문을 넘긴다는 특징이 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.