자바에서 조건문은 프로그램의 흐름을 제어하는 일을 하기 때문에 반드시 이해하고 사용할 줄 알아야 합니다. 이 글에서는 if, else, 그리고 switch 문을 사용하는 방법과 각 조건문의 특성에 대해 알아보겠습니다.
1. if 문
if 문은 소괄호 안에 특정한 조건이 있고, 그 조건이 참일 때 중괄호 안에 실행문을 실행하는 가장 기본적인 조건문 형식을 가집니다. 조건이 거짓이면 해당 코드 블록은 실행되지 않습니다. 다음은 if 문의 사용 예제입니다.
public class IfExample {
public static void main(String[] args) {
int number = 10;
if (number > 5) {
System.out.println("Number is greater than 5");
}
}
}
위 예제에서 변수 number가 5보다 클 경우, "Number is greater than 5"라는 메시지가 출력됩니다. 이처럼 if 문은 특정 조건이 참일 때만 코드를 실행할 수 있도록 합니다.
2. if~else 문
if~else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드를 실행할 수 있게 해 줍니다. 즉, 조건이 참이면 if 블록의 코드를 실행하고, 그렇지 않으면 else 블록의 코드를 실행합니다. if문에는 조건이 있지만 else문은 참이 아닌 모든 거짓인 나머지이므로 조건문이 없습니다. 다음은 if~else 문의 예제입니다.
public class IfElseExample {
public static void main(String[] args) {
int number = 3;
if (number % 2 == 0) {
System.out.println("Number is even");
} else {
System.out.println("Number is odd");
}
}
}
이 예제에서 number가 2로 나누어 떨어지면 짝수이기 때문에 "Number is even"이 출력되고, 그렇지 않으면 홀수이기 때문에 "Number is odd"라는 문장이 콘솔창에 출력되도록 했습니다. if~else 문은 두 가지 경로 중에서 한쪽만을 실행하게 됩니다.
3. if ~ else if ~ else 문
if~else if~else 문을 사용하면 여러 조건을 검사할 수 있습니다. 각 조건이 차례로 검사되며, 처음으로 참인 조건의 블록이 실행됩니다. 조건이 모두 거짓이면 마지막 else 블록이 실행됩니다.
public class IfElseIfElseExample {
public static void main(String[] args) {
int number = 15;
if (number < 10) {
System.out.println("Number is less than 10");
} else if (number < 20) {
System.out.println("Number is between 10 and 19");
} else {
System.out.println("Number is 20 or more");
}
}
}
이 예제에서는 number가 10보다 작으면 "Number is less than 10"이 출력되고, 10 이상 20 미만이면 "Number is between 10 and 19"가 출력됩니다. else 문은 20 이상이라면 "Number is 20 or more"가 출력됩니다.
4. switch 문
switch 문은 하나의 변수 값을 여러 가지 값과 비교할 때 사용됩니다. 각 경우에 대해 다른 코드를 실행할 수 있으며, 조건문이 많은 경우 가독성이 if~else 문보다 뛰어납니다. 다음은 switch 문의 예제입니다.
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
String dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
case 7:
dayName = "Sunday";
break;
default:
dayName = "Invalid day";
break;
}
System.out.println(dayName);
}
}
이 예제에서 day 변수가 3이면 "Wednesday"가 출력됩니다. switch 문은 각 case마다 break 문을 사용하여 실행을 종료해야 합니다. 그렇지 않으면 다음의 case 블록도 실행되므로 주의가 필요합니다. 마지막의 default는 어떤 case도 일치하지 않으면 실행되고, 이 블록은 선택적이므로 생략할 수 있습니다.
5. 조건문 사용 시 주의사항
다음은 자바의 조건문을 사용할 때에 고려해야 할 몇 가지 주요한 내용입니다.
1. 복수의 조건문이 있는 경우, 조건의 우선순위를 명확히 하여, 프로그램이 의도한 대로 실행하도록 해야 합니다. 예를 들어, if ~ else if 블록에서 두 조건이 모두 참이라면, 첫 번째 조건만 실행되므로 논리적 오류가 발생할 수 있습니다.
2. switch 문에서 break 문을 사용하지 않으면 원하지 않는 코드가 실행될 수 있으므로 항상 신중하게 코드를 작성해야 합니다.
3. 조건문을 과도하게 중첩하면 코드의 가독성이 떨어지고 오류를 발견하기 어렵게 만들기 때문에 이를 피하여 코드의 복잡성을 줄이는 것이 좋습니다.
4. 문자열을 비교할 때는 문자열을 쌍따옴표로 감싸야합니다. 큰따옴표 없이 문자열을 사용하면, 자바 컴파일러는 해당 문자열을 변수로 인식할 수 있으며, 이는 오류를 발생시킬 수 있습니다.
5. `=`는 대입 연산자이고, `==`는 비교 연산자입니다. 조건문에서는 비교 연산자를 사용해야 하며, 대입 연산자를 사용하면 예상치 못한 결과를 초래할 수 있습니다.
.
6. 조건문 내에서 중복되는 코드는 유지보수의 어려움을 초래하므로, 중복을 피하고 함수나 메서드를 통해 재사용 가능한 코드를 작성하는 것이 바람직합니다.
7. if 조건문을 작성할 때, 조건문 뒤에 세미콜론을 붙이지 않도록 주의해야 합니다. 세미콜론은 조건문의 종료를 의미하기 때문에, 이를 잘못 배치하면 조건문이 의도하지 않은 방식으로 실행될 수 있습니다.
8. else문을 생략할 경우, 조건이 충족되지 않았을 때 실행될 코드가 없으므로, 프로그램의 로직에 따라 필요한 경우 else문을 명시적으로 포함시키는 것이 좋습니다.
이러한 주의사항들은 자바 프로그래밍에서 조건문을 사용할 때 발생할 수 있는 일반적인 실수들을 방지하고, 프로그램의 정확성을 높여 더욱 견고하고 신뢰할 수 있는 개발을 할 수 있습니다.
요약
자바에서 조건문을 효과적으로 사용하면 프로그램의 흐름을 유연하게 제어할 수 있습니다. if, else, switch 문을 통해 프로그램의 흐름을 제어하고, 다양한 조건을 처리할 수 있습니다. if 문은 가장 기본적인 조건문으로 조건이 참일 때 코드를 실행합니다. if ~ else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드를 실행하게 해 주며, if ~ else if ~ else 문은 여러 조건을 순차적으로 검사할 수 있게 해줍니다. 마지막으로 switch문은 변수의 값을 여러 가지 값과 비교하여 각각 다른 코드를 실행할 때 유용합니다.
2024.06.04 - [Java] - 자바(Java)의 반복문(Loop): for문, while문, do-while문 예시를 통해 차이점 이해하기
자바(Java)의 반복문(Loop): for문, while문, do-while문 예시를 통해 차이점 이해하기
자바(Java)의 반복문(Loop)인 for, while, do-while 루프에 대해 자세히 알아보겠습니다. 서로 비슷하지만 상황에 따라 적절하게 사용하기 위해 어떠한 차이가 있는지 하나씩 살펴보겠습니다. 1. For문 :
it-learner.tistory.com