제어문은 원하는 결과를 출력시키기 위해서 프로그램의 순차적인 흐름을 제어해야 합니다.
이때 사용하는 명령어를 제어문이라고 하는데요.
제어문에는 조건 문과 반복문이 있습니다.
이런 제어문은 클래스와 메소드와 마찬가지로 ' { ', ' } '중괄호로 범위가 묶어있습니다.
이러한 영역을 블록(block)이라고 합니다.
제어문, 그중에서도 조건문에는 if 문과 switch 문이 있는데요.
이번 포스팅에서는 if 문을 알아보겠습니다.
1. if 문
if(조건) {
명령;
}
if 문의 기본 형태는 다음과 같은데요.
(조건)을 가장 먼저 확인하고 조건이 참이면 아래 명령을 수행합니다.
하지만 거짓일 때는 명령을 수행하지 않고 if 문밖으로 바로 나와버려요.
그림으로 표현하면 다음과 같습니다.
조건을 먼저 확인하고 해당 조건이 참일 경우 명령을 수행하고 거짓이면 명령을 수행하지 않고 문법 밖으로 나가버립니다.
int i = 10;
if(i % 5 == 0) {
System.out.println("5의 배수 입니다.");
}
if 문을 사용해서 간단한 코드를 작성해 봤는데요.
초깃값이 10인 i가 int형으로 선언되어 있습니다.
해당 코드에서는 조건이 참이 되어 5의 배수입니다.를 출력하라는 명령을 수행하겠네요!
2. if / else 문
if(조건) {
명령;
} else {
명령;
}
else 부분이 추가되었습니다.
else 아래에 나온 명령은 if 문의 조건이 거짓일 때 else의 명령을 수행하라는 말입니다.
int i = 9;
if(i % 5 == 0) {
System.out.println("5의 배수 입니다.");
} else {
System.out.println("5의 배수가 아닙니다.");
}
해당 명령에서는 조건을 확인하면 거짓이 됩니다.
그러니 else로 넘어가서 else 부분에 있는 명령을 수행하는 겁니다. "5의 배수가 아닙니다."가 출력이 되겠네요.
근데 이거 뭔가 삼항연산자랑 비슷하지 않나요??
3. if / else if / else 문
if(조건) {
명령;
} else if(조건) {
명령;
} ... {
} else {
명령;
}
다음처럼 else if(조건)을 통해 맨 위의 조건이 거짓일 때 아래 조건을 보고 그 조건도 거짓일 때 그다음 조건을 봅니다.
위의 조건들이 모두가 거짓이라면 else 부분의 명령이 실행되겠지요.
if(조건)은 무조건 1개가 쓰여야 하고 else는 한 개만 쓰거나 쓰지 않아야 합니다.
하지만 else if는 안 써도 되고 쓰고 싶은 만큼 써도 상관없습니다.
int i = 8;
if(i % 2 == 0) {
System.out.println("2의 배수 입니다.");
} else if(i % 3 == 0) {
System.out.println("3의 배수 입니다.");
} else {
System.out.println("2, 3의 배수가 아닙니다.");
}
위의 코드에서는 "2의 배수입니다."가 출력이 됩니다.
그리고 또 한 가지 if 문안에 if 문이 들어갈 수도 있습니다.
if(조건1) {
if(조건2) {
명령;
}
}
해당 문법은 조건 1을 먼저 확인하고 참이면 조건 2까지 확인을 한 다음에 명령을 수행하게 되겠습니다.
int i = 6;
if ( i % 2 == 0) {
if ( i % 3 == 0) {
System.out.println("2와 3의 배수입니다.");
}
}else {
System.out.println("2와 3의 배수가 아닙니다.");
}
해당 코드에서는 i가 2로 나눈 나머지가 0인지 먼저 보고 나머지가 0이라면 그다음 조건인 3으로 나누었을 때 나머지가 0인지 봅니다.
if(122 >= (int)c && (int)c >= 97) {
System.out.println("소문자입니다.");
} else if(90 >= (int)c && (int)c >= 65) {
System.out.println("대문자입니다.");
} else {
}
또한 문자가 들어갈 수도 있습니다.
해당 코드에서는 ASCII 코드의 숫자 값으로 문자를 비교했습니다.
boolean ring = true;
boolean married = false;
if(ring) {
if(married) {
System.out.println("결혼하셨군요!");
} else {
System.out.println("연인이 있으시군요!");
}
} else {
if(married) {
System.out.println("결혼하셨군요!");
}else {
System.out.println("솔로이시군요!");
}
}
해당 코드의 if 문을 차근차근 따라가면 어떤 결과가 나올지 보이실 겁니다!
ring에 true가 들어가 있고 married에는 false가 들어가 있습니다.
연인이 있으시군요! 가 출력이 되겠네요.
if(ring && married) {
System.out.println("결혼하셨군요!");
} else if(ring || married) {
System.out.println("연인이 있으시군요!");
} else {
System.out.println("솔로이시군요!");
}
해당 코드는 이렇게도 사용이 가능하겠네요!
'Java 관련 > Java' 카테고리의 다른 글
[Java] 제어문 - 반복문(while 문) (0) | 2021.10.10 |
---|---|
[Java] 제어문 - 조건문(switch 문) (0) | 2021.10.09 |
[Java] 자바 연산자(Operator) (0) | 2021.10.07 |
[Java] 형 변환(Type Casting) - TypeToType (0) | 2021.10.06 |
[Java] 자바에서 여러가지 타입(Type) (0) | 2021.10.05 |