프로그래밍 일기 — 조건문
“당신이 원하는대로 해 드리겠습니다. 단 조건이 있습니다.”
#조건문, #Java, #If문, #Switch문, #삼향연산자
Java는 물론이고 모든 프로그래밍 중 가장 기초 중 하나가 조건문(conditional statement)를 작성하는 것이다. 말 그대로 “어떠한 조건"을 충족시켰을 때 작동하는 부분이라고 할 수 있다. 간단하게는 수돗물을 나오게 하기 위해 수도꼭지를 틀어야하는 것처럼, 복잡하게는 비행기가 날기 위해서는 그 안에 있는 모든 부품(엔진, 냉각수, 날개, 프로펠러 등등)이 모두 필요한 조건을 충족해야 하는 것처럼, 이 세상의 많은 현상과 결과는 특정한 조건을 충족 시켰을 때 일어난다.
마찬가지로 컴퓨터에서의 많은 처리와 동작, 결과들도 특정한 조건들을 만족시켰을 때 일어나도록 구성되어있다. 또한 직관적으로 생각했을 때, 자신이 원하는 프로그램을 만들더라도 여러가지 조건을 만족시켰을 때 특정한 행위를 하도록 구성하는 것이 좋을 것이다. 이를 위해서는 조건문을 잘 활용해야 할 것이다.
조건문
컴퓨터에게 특정한 순서의 정의된 동작을 하도록 지시하는 제어문(Control Statement)로 볼 수 있다. 대표적으로 아래 3가지가 있다.
- If문
- Switch문
- 삼향연산자
If문
아주 단순한 형태의 조건문으로 볼 수 있다. 영어 “If”가 의미하는 것처럼 “만약 어떤 조건이 충족되면" 주어진 지시를 수행하는 것이다. 가장 단순한 if문부터, if조건 이외의 경우에 대한 별도의 명령을 수행할 수 있도록 지시하는 if/else문을 구성가능하다.
// 문법: if (조건식){
// 실행 코드
// }
// 예제1: 단순 if문
int check = 100;
int num1 = 150;
if (num1 > check) { // 조건: num1가 check보다 크면 아래 명령를 수행하라.
System.out.println("100보다 큰 수입니다"); //위 조건이 참일 경우 해당 명령를 수행.
}
>> 100보다 큰 수입니다
// 예제2: if/else문
int num2 = 50;
if (num2 > check) { // 조건: num2가 check보다 크면 아래 명령를 수행하라.
System.out.println("100보다 큰 수입니다"); //위 조건이 참일 경우 해당 명령를 수행.
} else {
System.out.println("100보다 작은 수입니다."); //위 조건이 거짓일 경우 해당 명령를 수행.
}
>> 100보다 작은 수입니다.
Switch문
If문이 한 조건과 그 이외의 경우에 대해서 특정 명령을 수행한다고 한다면, Switch는 If문 보다는 조금 더 많은 경우의 수를 정의할 수 있다. 따라서 If문과 비교해서는 조금 더 세부적으로 많은 조건을 정의해야할 때 유용하다. 하나의 조건을 만족하는 코드가 실행되면, 이후 break를 통해 바로 조건문을 빠져나갈 수 있다.
// 문법: switch (입력 변수){
case 입력값1 : 실행 구문
break; // break 이후에 반드시 ";"을 붙여주어야한다.
case 입력값2 : 실행 구문
break; // break 이후에 반드시 ";"을 붙여주어야한다.
case 입력값3 : 실행 구문
break; // break 이후에 반드시 ";"을 붙여주어야한다.
default: 기본 실행 구문
break; // 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;
}
>> A등급입니다.
삼향연산자
한 줄로 모든 조건문에 대한 명령을 정의할 수 있어, If문이나 Switch문 보다도 더 처리가 용이한 조건문이라 할 수 있다. “?”를 기준으로 조건식이 참(true)일 경우에는 A 코드를, 거짓(false)일 경우에는 B 코드를 수행한다.
// 문법: (조건식) ? A : B
// 예제
int a = 5;
String reuslt = (a < 10) ? "10보다 작습니다." : "10보다 큽니다.";
// (a < 10)가 참이면 "10보다 작습니다.", 거짓이면 "10보다 큽니다."
System.out.println(reuslt);
>> 10보다 작습니다.
참조:
(1) https://pixabay.com/photos/jogging-run-sport-jog-sporty-race-2343558/