조건문이란?
- 조건문은 주어진 식의 조건에 따라 서로 다른 문장을 수행하도록 제어하는 명령어입니다.
- 조건문은 크게 1.if문, 2.if~else문, 3.if ~ else if ~else문, 4. switch문 구별됩니다.
if문 (~라면 실행해라)
- if문은 조건의 결과가 참(true)라면, 주어진 명령문을 실행하며 거짓(false)이라면 실행하지 않습니다.
if문의 기본 골격
- if문의 조건식에는 true 혹은 false를 반환하는 연산 또는 값이 오게 됩니다.
- 조건이 참(true)일 경우, if문의 내부가 실행되고 거짓일 경우(false)일 경우, if문을 무시하고 건너뛰어 실행합니다.
if(조건식) {
//결과가 참일 경우 실행하고자 하는 명령문
}
- 다음의 예를 통해 if문을 살펴 보겠습니다.
💻 예시 코드
class IfBasic{
public static void main(String[] args){
int number1 = 5;
int number2 = 10;
//조건문 if문
if(number1 < number2){ //number2가 number1보다 크다면 (true)
//참일 경우 실행 되는 영역
System.out.println("number2가 number1보다 큰 값입니다.");
}
}
}
📸 출력 결과
number2가 number1보다 큰 값입니다.
if ~ else문 (~라면 if문을 실행하고 ~이 아니면 else문을 실행해라)
- if문과 함께 사용하는 else문은 if문과 반대로 주어진 조건식의 결과가 거짓(false)이면, 주어진 명령문을 실행합니다.
if ~ else문의 기본 골격
if(조건식){
//조건식의 결과가 참일 경우 실행되는 명령문 영역
}else{
//조건식의 결과가 거짓일 경우 실행되는 명령문의 영역
}
- 앞서 본 if문의 예를 변영하여 if ~ else문을 살펴보겠습니다.
💻 예시 코드
class IfBasic{
public static void main(String[] args){
int number1 = 5;
int number2 = 10;
//조건문 if문 ~ else문
if(number1 == number2){ //조건: number1과 number2가 같은가?
//참(true)일 경우 실행되는 영역(number1과 number2같다라면)
System.out.println("number1과 number2는 값이 같습니다.");
}else{
//거짓(false)일 경우 실행되는 영역(number1과 number2가 같지 않다면)
System.out.println("number1과 number2는 값이 다릅니다. ");
}
}
}
📸 출력 결과
number1과 number2는 값이 다릅니다.
if ~ else if ~ else문
( 조건1이라면 if문을 실행하고 조건2이라면 else if문을 실행해라, 만약 조건1과 조건2 둘 다 아니면 마지막으로 else문을 실행해라)
- 여러가지 문장에서 조건에 따라 하나의 문장만 실행하고 싶을 경우 if ~ else if ~ else문을 사용합니다.
- java프로그램은 맨 위의 조건을 검사하면서 실행합니다. 그러다가 조건이 true인 부분을 만나면 해당 부분에 속한 문장을 실행하고
나머지는 건너 뛰게 됩니다. - 그러다가 마지막까지 조건이 true인 부분을 만나지 못하면 맨 마지막에 위치한 else문의 영역에 있는 문장을 실행하게 됩니다.
- 실행될 명령문이 한 줄뿐이라면 줄괄호({ })를 생략할 수 있습니다.
if ~ else if ~ else문의 기본 골격
if (조건식1) {
//조건식1의 결과가 참일 때 실행하고자 하는 명령문;
} else if (조건식2) {
//조건식2의 결과가 참일 때 실행하고자 하는 명령문;
} else {
//조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}
- 다음의 예를 통해 if ~ elseif ~ else문을 살펴보겠습니다.
💻 예시 코드
class IEIE{
public static void main(String[] args){
char ch = 'X';
if (ch >= 'a' && ch <= 'z') {
System.out.println("해당 문자는 영문 소문자입니다.");
} else if (ch >= 'A' && ch <= 'Z') {
System.out.println("해당 문자는 영문 대문자입니다.");
} else {
System.out.println("해당 문자는 영문자가 아닙니다.");
}
}
}
📸 출력 결과
해당 문자는 영문 대문자입니다.
+) if ~ else문과 동일한 의미를 갖는 삼항 연산자
- 자바에서는 간단하게 삼항 연산자를 통해서 if ~else문을 표현할 수 있습니다.
삼항 연산자이란?
- 자바에서 피연산자가 3개인 조건 연산자입니다.
삼항 연산자의 골격
- 조건이 참(true)인 경우, 반환값 1을 반환하고 거짓(false)일 경우, 반환값 2를 반환합니다.
조건 ? 반환값1(참일 경우) : 반환값2(거짓인 경우)
- 다음의 예를 통해 삼항 연산자를 살펴보겠습니다.
💻 예시 코드
class CondOp{
public static void main(String[] args){
int num1 = 5;
int num2 = 7;
int result;
//조건이 참이라면 num1을 반환하고 거짓일 경우 num2를 반환합니다.
result = (num1 - num2 > 0) ? num1 : num2;
System.out.println("두 정수 중 더 큰 수는 " + result + "입니다.");
}
}
📸 출력 결과
두 정수 중 더 큰 수는 7입니다.
swith문
- if ~ elseif ~else문과 같이 조건에 따라 실행할 문장을 구별합니다.
- switch문은 if ~else 문보다 가독성이 좋으며 3개 이상의 여러가지의 조건이 있을 경우 switch문을 자주 사용합니다.
- 다만) switch문의 조건에는 int형으로 형변환할 수 있는 값만이 사용됩니다.
즉, (byte형,short형, char형, int형, 리터럴 상수)가 사용될 수 있습니다.
swith문의 기본 골격
- switch문에는 조건에 따른 위치를 표시하고자 레이블(라벨)이 사용됩니다.
switch (조건 값) {
case 값1:
조건 값이 값1일 때 실행하고자 하는 명령문;
break;
case 값2:
조건 값이 값2일 때 실행하고자 하는 명령문;
break;
...
default:
조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
break;
}
🤔 레이블(라벨)이란?
- 서점에서 종류에 따른 책을 분류해 위치를 표시해 두었던 것 같이, 조건을 분류한 키워드입니다.
- 키워드 case와 default가 해당합니다.
- 모든 case에 해당한 조건의 값이 없다면 마지막으로 default 라벨로 이동하여 코드가 실행됩니다.
- 다음의 예를 통해 switch문을 살펴보겠습니다.
💻 예시 코드
class switchBreak(n){
public static void main(String[] args){
switch (ch) {
case 'a':
System.out.println("해당 문자는 'A'입니다.");
break;
case 'e':
System.out.println("해당 문자는 'E'입니다.");
break;
case 'i':
System.out.println("해당 문자는 'I'입니다.");
break;
case 'o':
System.out.println("해당 문자는 'O'입니다.");
break;
case 'u':
System.out.println("해당 문자는 'U'입니다.");
break;
default:
System.out.println("해당 문자는 모음이 아닙니다.");
break;
}
}
📸 출력 결과
해당 문자는 'I'입니다.
📒 Reference (참고 자료)
1. 윤성우의 열혈 자바
2. TCP 스쿨 코딩교육 티씨피스쿨
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
'프로그래밍 언어 > Java 문법 - 기본문법' 카테고리의 다른 글
9.Java 기본문법(8) - 메소드 (0) | 2022.10.19 |
---|---|
8.Java 기본문법(7) - 반복문 (1) | 2022.10.19 |
6. Java 기본문법(5) - 연산자 (0) | 2022.10.18 |
5. Java 기본문법(4) - 형 변환 (0) | 2022.10.13 |
4. Java 기본문법(3) - 상수 (0) | 2022.10.13 |