● 제어문
1. 조건문
(1) if문
- if~else문
if(조건식) {
조건식이참일때실행할문장;
} else {
조건식이거짓일때실행할문장;
}
- if~else if문
if(조건식1) {
조건식1이참일때실행되는영역;
} else if(조건식2) {
조건식1은거짓이고 조건식2가참일때실행되는영역;
} else if(조건식3) {
조건식1과조건식2거짓이고, 조건식3참일때실행되는영역;
} ... {
} else {
위에있는 조건식이 모두 거짓일때 실행되는 영역;
}
※ if문 vs 삼항연산자
- 모든 삼항연산자는 if문으로 바꿀 수 있으나 모든 if문은 삼항연산자로 바꿀 수 없다.
- if문을 사용했을 경우 가독성이 좋다.
- 삼항연산자를 사용했을 경우 한 줄로 작성할 수 있다.
- 간결한 코드는 삼항연산자를 활용하고, 복잡한 코드는 if문을 활용하여 가독성을 높인다.
※ if (조건식) 여러개 vs if~else if
- 여러개의 조건식을 반드시 한 번씩 검사를 해줘야 할 경우에는 if(조건식)을 여러개 사용하여 한 번씩 검사를 해준다.
- if문 중 위의 조건식이 거짓일때만 검사를 해야하는 경우라면 if~else if로 연결하여 불필요한 검사를 줄일 수 있다.
실습(if~else문)
1. 사용자가 입력한 값이 홀수인지 짝수인지 구별하는 프로그램 작성하기
- if문 사용
import java.util.Scanner;
public class IfTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 >> ");
int num = sc.nextInt();
if(num % 2 == 0) {
System.out.println("짝수입니다");
} else {
// if문의 조건식이 거짓이라면 실행되는 영역
System.out.println("홀수입니다");
}
}
}
![](https://blog.kakaocdn.net/dn/cbxuZq/btroMqt6052/VyKeD4rmL9E5zBrkhjZrlk/img.png)
- 삼항연산자 사용
import java.util.Scanner;
public class IfTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 >> ");
int num = sc.nextInt();
System.out.println(num % 2 == 0 ? "짝수입니다" : "홀수입니다");
}
}
![](https://blog.kakaocdn.net/dn/G2HEn/btroISTo2i3/u85anHRqTcR7zA779dLCt0/img.png)
실습(if~else if문(1))
1. 두 정수를 입력 받아서 둘 중 더 큰 수를 출력하되, 같다면 같다고 출력하기
- if문 사용
import java.util.Scanner;
public class IfTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수1 입력 >> ");
int num1 = sc.nextInt();
System.out.print("정수2 입력 >> ");
int num2 = sc.nextInt();
if (num1 >num2) {
System.out.println(num1);
} else if (num2 > num1) {
System.out.println(num2);
} else {
System.out.println("같다");
}
}
}
![](https://blog.kakaocdn.net/dn/duQArq/btroLDAswbO/k2KYe0Ggd8bheM5uIlmkG1/img.png)
- 삼항연산자 사용
import java.util.Scanner;
public class IfTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수1 입력 >> ");
int num1 = sc.nextInt();
System.out.print("정수2 입력 >> ");
int num2 = sc.nextInt();
String res = (num1 > num2 ? num1 + "" : num2 > num1 ? num2 + "" : "같다");
System.out.println(res);
}
}
![](https://blog.kakaocdn.net/dn/drzD8w/btroLEsBvlc/QCgXHmhyfaaS7WpwZXFFF1/img.png)
실습(if~else if문(2))
1. 사용자가 입력한 정수가 3의 배수라면 "3의 배수입니다"를, 4의 배수라면 "4의 배수입니다"를 출력하는 프로그램 작성
import java.util.Scanner;
public class IfTest3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 >> ");
int num = sc.nextInt();
if (num < 10) {
System.out.println("10보다 작은 수");
} else if (num == 3) {
// num이 3이어도 위에서 조건을 만족했기 때문에 아래 코드는 출력되지 않는다.
System.out.println("num은 3이다");
}
if (num % 3 == 0) {
System.out.println("3의 배수입니다");
} else if (num % 4 == 0) {
System.out.println("4의 배수입니다");
} // else는 선택사항
}
}
![](https://blog.kakaocdn.net/dn/bevRwz/btroJjXxHZl/uVxS93PQgDI7nTZuFOE0O0/img.png)
![](https://blog.kakaocdn.net/dn/c9tc0y/btroJ1WlLBW/mc1VIdkSluqXnsQkY0Vock/img.png)
![](https://blog.kakaocdn.net/dn/B5LJ6/btroMqHEL0U/1qbojy5hlUAoCSyK0AtSKk/img.png)