늦은 프로그래밍 이야기
조건문, 반복문 본문
조건문
- 특정 조건에 따라 프로그램이 실행된다.
- 조건문에는 if, switch, 삼항연산자 조건문이 있다.
if문
특징
- 조건식이 True일 경우에 실행 코드가 구현되고 이후 조건은 확인하지 않고 그냥 넘어감.
- 조건식이 False일 경우에는 실행 코드가 구현되지 않고 그냥 넘어감.
- if문이 여러개인 경우에는 위에서부터 순서대로 확인한다.
- 조건식에는 일반적으로 관계연산자를 사용한다.
- 두개 이상의 조건식에는 논리연산자를 사용한다.
if (조건식){
실행 코드;
}
예시
int num = 50;
if (num > 100) {
System.out.println("100보다 큰 수입니다");
} else if (num > 50) {
System.out.println("50보다 크고, 100보다 작거나 같은 수입니다.");
} else {
System.out.println("50보다 작은 수입니다.")
}
- 첫번째 if문을 확인하고 조건식이 True인 경우 괄호 안의 코드를 실행하고 이후 조건문들은 넘어간다.
- 첫번째 if문의 조건식이 False인 경우 두번째 else if문의 조건을 확인하고 조건식이 True인 경우 괄호 안의 코드를 실행하고 이후 조건문은 넘어간다.
- 첫번째와 두번째 if문의 조건식이 False인 경우 세번째 else문에는 조건이 없기 때문에 else문의 괄호 안의 코드가 실행된다.
- 위 예시에서 num = 50이므로, else 블럭 안의 코드가 실행된다.
Switch문
특징
- switch문 안의 식을 판단한다.
- case의 값과 조건이 일치하면 그 뒤의 문장부터 break 사이의 코드를 실행한다.
- case의 값 중 일치하는 것이 없는 경우에는 default와 break 사이의 코드를 실행한다.
switch (입력 변수){
case 입력값1 : 실행 구문;
break;
case 입력값2 : 실행 구문;
break;
case 입력값3 : 실행 구문;
break;
default: 기본 실행 구문;
break;
}
- break 뒤에 세미콜론(;)을 꼭 붙여야 된다.
- break문을 작성하지 않으면 조건에 맞는 case 의 실행구문 이후가 모두 실행된다.
- break : 블록 내부 문장의 흐름을 강제 종료
예시
char score = 'A';
switch (score) {
case 'A':
System.out.println("A등급입니다.");
break;
case 'B':
System.out.println("B등급입니다.");
break;
case 'C':
System.out.println("C등급입니다.");
break;
default:
System.out.println("C등급보다 낮은 등급입니다.");
break;
}
- 위 경우에는 변수인 score가 'A'이므로 case 'A'의 코드를 실행하고 break문으로 switch문을 강제로 종료한다.
삼항연산자
특징
- 간단한 조건 판단이 필요한 경우에 사용한다.
- 조건식이 True인 경우 A코드, False인 경우에는 B코드를 실행한다.
(조건식) ? A : B
예시
int a = 5;
String reuslt = (a < 10) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(reuslt);
- 위 경우에 조건식은 a < 10이고, 변수 a는 5이므로 조건식이 True가 되므로 A위치에 있는 구문이 실행된다.
반복문
- 단순 반복의 과정을 간단하게 할 수 있다.
- 반복문에는 for문, while문, do ~ while문이 있다.
for문
특징
- 초기값이 조건식에 True인 경우 실행 코드를 한바퀴 돌게 된다.
- 이후 증감식을 통해 얻어진 값으로 다시 조건식에 위배되는지 확인한다.
- True인 경우 이전 과정을 반복하며, False인 경우 반복문이 종료된다.
- 일반적인 경우
for (초기값; 조건식; 증감식) {
실행 코드 블럭;
}
- 배열을 반복하는 경우
For (자료형 변수 : 배열이름)
예시
- 일반적인 경우
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += (i + 1);
}
System.out.println(sum);
- 초기값이 0이므로 조건식 i < 10에 부합하여 블럭 내의 코드를 실행한다.
- 증감식에 따라 i = 1이 되고 조건식에 부합하여 블럭 내의 코드를 반복한다.
- 이후 i가 10이 되면 조건식식에 위배되므로 반복문을 종료하고 블럭 아래 코드를 실행한다.
- 배열을 반복하는 경우
int [] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
- 배열의 값들을 하나하나 변수에 담아서 출력한다.
while문
특징
- 조건이 True일 경우에만 여러번 반복 실행한다.
- 조건이 False가 될 때까지 반복해서 코드를 실행할 수 있다.
while (조건식) {
실행 코드 블럭;
}
예시
int i = 0;
int sum = 0;
while (i < 10) {
sum += i + 1;
i++;
}
System.out.println(sum);
- 조건이 False에 가까워지도록 증감식을 사용하여야 한다. 증감식이 없으면 무한루프에 빠지게 됨.
do ~ while문
특징
- 조건을 판단하기 전에 블록 안의 코드를 실행시킨다.
- 최소 1회 블록 내의 코드를 실행시킨다.
do {
실행 코드 블럭;
} while (조건식);
예시
int i = 1;
int result = 0;
do {
result += i;
i++;
} while (i < 2);
System.out.println(result);
- 조건식에 맞지 않더라도 블록 내의 코드를 1회 실행한다.
break, continue문
break문
- 처리의 흐름을 강제로 종료시키고, 그 블록에서 빠져 나간다.
- 블록에서 빠져나가 다음 문장이 실행된다.
continue문
- 반복처리를 건너 뛴 다음, 블록의 시작 위치로 돌아가서 다음 작업을 진행한다.
- 반복문의 처음으로 돌아가서 그대로 진행.
'내일배움캠프 > Java 기초' 카테고리의 다른 글
| 객체지향 (2) 상속, 접근제어자 (1) | 2022.11.15 |
|---|---|
| 객체지향 (1) 클래스, 인스턴스, 메소드, 생성자 (0) | 2022.11.15 |
| 자주 발생하는 에러, 해결방법 (0) | 2022.11.14 |
| 연산자 (0) | 2022.11.07 |
| 상수와 변수, 자료형 (1) | 2022.11.07 |