- if문은 if, if-else, if-else if의 세가지 형태가 있다.
- 조건식의 결과는 반드시 true 또는 false여야 한다.
주석으로 설명..
package ch04;
public class S01 {
public static void main(String[] args) {
int age;
if(2023 < 2022){
age = 11;
} else {
age = 12;
}
System.out.println(age);
}
}
주석으로 설명..
package ch04;
import java.util.Scanner;
public class S02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int nextInt = scanner.nextInt(); //ctrl + alt + v하면 빠져나옴
if (nextInt < 10) {
System.out.println("숫자가 10보다 작습니다.");
} else if (nextInt < 20) {
System.out.println("숫자가 9보다 크고 20보다 작습니다.");
} else if(nextInt < 30){
System.out.println("숫자가 19보다 크고 30보다 작습니다.");
} else {
System.out.println("숫자가 29보다 큽니다.");
}
scanner.close();
}
}
주석으로 설명..
package ch04;
import java.util.Scanner;
public class S02Quiz {
public static void main(String[] args) {
// 점수를 입력받아서
// 90점 이상이면 A
// 80점 이상이면 B
// 70점 이상이면 C
// 60점 이상이면 D
// 60점 미만이면 F
Scanner scanner = new Scanner(System.in);
int nextInt = scanner.nextInt();
if(nextInt >= 90) {
System.out.println("A");
} else if(nextInt >= 80){
System.out.println("B");
} else if(nextInt >= 70){
System.out.println("C");
} else if(nextInt >= 60){
System.out.println("D");
} else {
System.out.println("F");
}
scanner.close();
}
}
- if문 안에 또 다른 if문을 중첩해서 넣을 수 있음
- if문의 중첩횟수에는 거의 제한이 없다.
- if문의 조건식과 달리, 조건식의 계산결과가 int타입의 정수와 문자열만 가능
- 조건식의 계산결과와 일치하는 case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다.
(break문이 없으면 switch문의 끝까지 진행한다.)
- 일치하는 case문의 값이 없는 경우 default문으로 이동한다.
- case문의 값으로 변수를 사용할 수 없다.
(리터럴, 상수, 문자열 상수만 가능)
주석으로 설명..
package ch04;
import java.util.Scanner;
public class S03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int nextInt = scanner.nextInt();
// if (nextInt < 10) {
// System.out.println("숫자가 10보다 작습니다.");
// } else if (nextInt < 20) {
// System.out.println("숫자가 9보다 크고 20보다 작습니다.");
// } else if(nextInt < 30){
// System.out.println("숫자가 19보다 크고 30보다 작습니다.");
// } else {
// System.out.println("숫자가 29보다 큽니다.");
// }
if (nextInt < 0) {
System.out.println("잘못 입력하셨습니다.");
scanner.close();
return;
}
switch(nextInt / 10){
case 0:
System.out.println("숫자가 10보다 작습니다.");
break;
case 1:
System.out.println("숫자가 9보다 크고 20보다 작습니다.");
break;
case 2:
System.out.println("숫자가 19보다 크고 30보다 작습니다.");
break;
default:
System.out.println("숫자가 29보다 큽니다.");
}
}
}
주석으로 설명..
package ch04;
import java.util.Scanner;
public class S03Quiz {
public static void main(String[] args) {
// 점수를 입력받아서
// 90점 이상이면 A
// 80점 이상이면 B
// 70점 이상이면 C
// 60점 이상이면 D
// 60점 미만이면 F
Scanner scanner = new Scanner(System.in);
int nextInt = scanner.nextInt();
switch (nextInt / 10) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("F");
}
scanner.close();
}
}
주석으로 설명..
package ch04;
public class S03Temp {
public static void main(String[] args) {
int num = 90;
// 2,3으로 해야 범위가 작아져서 switch문의 코드도 작아진다.
System.out.println(num % 2);
// 나머지 -1, 0, 1 나오고
System.out.println(num % 3);
// 나머지 -2, -1, 0, 1, 2 나오니까
// 둘이 합친다면 -1, -2, -3, 1, 2, 3이 나온다.
// case -1, -2, -3 이면 잘못, 그외의 것은 잘
switch (num % 2 + num % 3){
case -1:
case -2:
case -3:
System.out.println("잘못입력하셨습니다.");
return;
default:
System.out.println("잘 입력하셨어요.");
}
}
}
- if문이 주로 사용되며, 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다.
- 모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다.
- if문 보다 switch문이 더 간결하고 효율적이다.
- Math클래스에 정의된 난수 발생함수
- 0.0과 1.0 사이의 double값을 반환한다.
주석으로 설명..
package ch04;
public class S04 {
public static void main(String[] args) {
// Math.random()은
// 0보다 크거나 같고
// 1보다 작다
// 45를 곱하면 0~44.99999...나온다
double num = Math.random() * 45;
// int로 캐스팅해서 0~44로 만든다
int intNum = (int) num;
// +1 해주면 1~45가 된다.
int result = intNum + 1;
System.out.println(result);
}
}