제어문 (Control Statement)이란?
조건에 따라 문장의 실행 순서를 변경하는 것을 제어문이라고 합니다.
제어문 종류
- 조건문 조건에 따라서 여러 개의 실행 경로 가운데 하나를 선택해야 하는 경우 사용되며 if-else와 switch가 있습니다.
- 반복문 조건이 유지되는 한 또는 정해진 횟수만큼 처리를 되풀이하는 문장이며 while과 for가 있습니다.
이번에는 조건문인 if-else를 설명하겠습니다.
if-else 문의 형식
if-else 문의 형식은 다음과 같습니다:
만약 조건이 참이라면 A를 실행하고, 조건이 참이 아니라면 B를 실행해!
처음 보신다면 이해하기 어려우실 수 있습니다. 예를 들자면:
예를 들자면
15000원 이상일 때 배달비 무료
15000원 이상이 아닐 때는 배달비 2000원과 같습니다
이것을 코드로 구현하면 다음과 같습니다:
public class IfElsePractice {
public static void main(String[] args) {
int price = 22000;
// 가격이 20000원 이상일 때
if (price >= 20000) { // 참일 때 true
System.out.println("배달비 무료!");
}
else { // 참이 아니고 거짓일 때 false
System.out.println("배달비 2000원 추가");
}
}
}
if 문을 사용하기 위해서는 조건이 true 또는 false로 평가될 수 있어야 합니다.
조건은 논리 연산자를 사용하거나, true 또는 false 값을 사용할 수 있습니다.
값이 true 또는 false인 경우
public class IfElsePractice {
public static void main(String[] args) {
boolean isWorking = true;
if (isWorking) { // 변수의 값이 true이기 때문에 실행이 가능합니다
System.out.println("일하는 중입니다");
}
else {
System.out.println("일하지 않고 있습니다");
}
}
}
혼자서 해볼까요?
짝수인지 홀수인지 확인하는 코드를 만들어보세요.
힌트는 % 연산자를 사용하는 것입니다.
public class IfElsePractice {
public static void main(String[] args) {
int num = 10;
// 나머지 연산자
// 10 % 2 = 0이기 때문에 true
if (num % 2 == 0) {
System.out.println("짝수 입니다");
}
else {
System.out.println("홀수 입니다");
}
}
}
다중 if-else 문
if-else 문은 여러 개의 조건을 처리할 때도 사용될 수 있습니다. 대표적인 예시로 성적 처리가 있습니다.
public class IfElsePractice {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("A입니다");
}
else if (score >= 80) {
System.out.println("B입니다");
}
else if (score >= 70) {
System.out.println("C입니다");
}
else if (score >= 60) {
System.out.println("D입니다");
}
else {
System.out.println("F입니다");
}
}
}
주의사항
다중 if-else 문을 사용할 때 주의해야 할 점은
조건이 true가 되면 나머지 else if와 else는 실행되지 않는다는 것입니다.
public class IfElsePractice {
public static void main(String[] args) {
int score = 85;
// 여기가 true이기 때문에 D가 출력이 된다
if (score >= 60) {
System.out.println("D입니다");
}
else if (score >= 70) {
System.out.println("C입니다");
}
else if (score >= 80) {
System.out.println("B입니다");
}
else if (score >= 90) {
System.out.println("A입니다");
}
else {
System.out.println("F입니다");
}
}
}
현재 점수는 85점입니다. 첫 번째 조건인 60점 이상이기 때문에 조건이 true가 되어 첫 번째 문장이 실행됩니다.
이처럼 조건식은 순서에 맞게 잘 적어야 합니다.
제어문(조건문, 반복문)은 하나의 문장일 때 중괄호를 생략할 수 있습니다
public class IfElsePractice {
public static void main(String[] args) {
int price = 22000;
if (price >= 20000)
System.out.println("배달비 무료!");
else
System.out.println("배달비 2000원 추가");
System.out.println("2번째 줄부터는 무조건 실행");
}
}
중괄호를 생략하면 한 문장만 포함되며, 그 이후 문장은 조건에 상관없이 실행됩니다.
따라서 코드의 들여쓰기를 정확히 하는 것이 중요합니다.
public class IfElsePractice {
public static void main(String[] args) {
int price = 22000;
if (price >= 20000)
System.out.println("배달비 무료!");
else
System.out.println("배달비 2000원 추가");
System.out.println("2번째 줄부터는 무조건 실행");
}
}
들여쓰기는 선택이 아닌 필수입니다
혼자 프로그래밍을 할 때는 괜찮지만, 협업을 해야 하는 경우 들여쓰기가 제대로 되어 있지 않으면 가독성이 매우 떨어집니다. 꼭 들여쓰기를 습관이 될 때까지 연습하면 좋겠습니다.
들여쓰기가 이상한 코드 예시
public class IfElsePractice {
public static void main(String[] args) {
int price = 22000;
if (price >= 20000)
System.out.println("배달비 무료!");
else
System.out.println("배달비 2000원 추가");
System.out.println("2번째 줄부터는 무조건 실행");
}
}
한 눈에 봐도 코드가 읽기 매우 어렵습니다. 꼭 들여쓰기 연습을 하세요.
삼항 연산자
if-else 문을 이해했다면 삼항 연산자를 사용하는 것을 추천합니다. 이해하지 못했다면 조금 더 숙달 후에 읽어주세요.
간단한 if-else문을 삼항 연산자로 표현할 수 있습니다:
public class IfElsePractice {
public static void main(String[] args) {
int price = 20000;
System.out.println(price >= 20000 ? "배달비 무료" : "배달비 2000원");
}
}
price >= 20000 ? "배달비 무료" : "배달비 2000원"
삼항 연산자의 구문:
조건문 ? true일 때 값 : false 일 때 값
위 코드에서 price >= 20000이 true라면 "배달비 무료"가 출력되고, false라면 "배달비 2000원"이 출력됩니다.
이해하기 어려우시다면 아직은 몰라도 괜찮습니다. 우선 if-else문을 완벽하게 이해하는 것이 중요합니다.
'Java' 카테고리의 다른 글
[Java] 배열 (0) | 2024.07.09 |
---|---|
[Java] 반복문 while 문 (0) | 2024.07.05 |
[Java] 반복문 for문 (0) | 2024.07.04 |
[Java] switch 문 (0) | 2024.07.04 |
[Java] 변수 선언 (0) | 2024.06.24 |