if문
if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.
조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 타입 변수가 올 수 있다.
조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않는다.
package chapter4_1;
public class IfExample {
public static void main(String[] args) {
int score = 93;
if (score >= 90) { //true
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}
if (score <= 90) { // false 이 구문은 실행되지 않는다.
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다.");
}
}
}
/* 실행결과
점수가 90보다 큽니다.
등급은 A입니다.
*/
if-else문
if문의 조건식이 true이면 if문의 블록이 실행되고 조건식이 false이면 else 블록이 실행된다.
조건식의 결과에 따라 이 2개의 블록 중 어느 한 블록에만 내용을 실행하고 전체 if문을 벗어나게 된다.
package chapter4_1;
public class IfElesExample {
public static void main(String[] args) {
int score = 85;
if (score >= 90) { // false else문이 실행된다.
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}else {
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다.");
}
}
}
/* 실행결과
점수가 90보다 작습니다.
등급은 B입니다.
*/
if-else if-else문
조건문이 여러 개인 if문도 있다.
package chapter4_1;
public class IfElseIfElseExample {
public static void main(String[] args) {
int score = 75;
if (score >= 90) { // false일 경우 2번쨰로 넘어간다.
System.out.println("점수가 90~100입니다.");
System.out.println("등급은 A입니다.");
} else if (score >= 80) { // false일 경우 3번째로 넘어간다.
System.out.println("점수가 80~89입니다.");
System.out.println("등급은 B입니다.");
} else if (score >= 70) { // false일 경우 4번째로 넘어간다.
System.out.println("점수가 79~70입니다.");
System.out.println("등급은 C입니다.");
} else { // 위의 모든 조건식이 false일 경우 else가 실행된다.
System.out.println("점수가 70 미만입니다.");
System.out.println("등급은 D입니다.");
}
}
}
/* 실행결과
점수가 79~70입니다.
등급은 C입니다.
*/
주사위 번호 뽑기
if-else if-else문을 사용해서 주사위의 번호를 뽑는 프로그램을 만들 수도 있다.
주사위의 번호를 뽑기 위해서는 아래의 메소드를 사용할 수 있다.
Math.random()
이 메소드는 0.0 보다 크거낙 같고 1.0보다 작은 double 타입의 난수를 하나 리턴한다.
0.0 <= Math.radom() < 1.0
따라서 이 메소드에 10을 곱하면
0.0 * 10 <= Math.random() < 1.0 *10
결과적으로 0보다 크거나 같고 10보다 아래인 정수범위가 설정된다.
(int)0.0 <= (int)(Math.ramdom()) * 10 < (int)10.0
이 상태에서 각 변에 1을 더하면 1~10까지의 정수 중에 하나의 정수를 얻을 수 있게 된다.
만약 1에서 6까지의 정수 중에 하나를 뽑고 싶다면
int num = (int)(Math.random() * 6) + 1;
을 해주면 된다.
package chapter4_1;
public class IfDiceExample {
public static void main(String[] args) {
int num = (int) (Math.random() * 6) + 1; // 1 ~ 6까지의 난수
if (num == 1) {
System.out.println("1번이 나왔습니다.");
} else if (num == 2) {
System.out.println("2번이 나왔습니다.");
} else if (num == 3) {
System.out.println("3번이 나왔습니다.");
} else if (num == 4) {
System.out.println("4번이 나왔습니다.");
} else if (num == 5) {
System.out.println("5번이 나왔습니다.");
} else {
System.out.println("6번이 나왔습니다.");
}
}
}
switch문
switch문은 if문과 마찬가지로 조건 제어문이다. 하지만 switch문은 if문처럼 조건식이 true일 경우 내부블럭을 실행하는 것이 아니라
변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.
조건식의 결과가 많은 경우 if-else를 쓰는 것보다 switch문을 쓰면 더욱 간결한 코드를 만들 수 있다.
package chapter4_1;
public class SwitchExample {
public static void main(String[] args) {
int num = (int) (Math.random() * 6) + 1; // 주사위 번호 뽑기
switch (num) {
case 1:
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
break;
}
}
}
Char 타입 변수로 대소문자 상관없이 동일하게 처리하도록 만든 switch문이다.
package chapter4_1;
public class SwitchCharExample {
public static void main(String[] args) {
char grade = 'B';
switch (grade) {
case 'A':
case 'a':
System.out.println("우수 회원입니다.");
break;
case 'B':
case 'b':
System.out.println("일반 회원입니다.");
break;
default:
System.out.println("손님입니다.");
}
}
}
String 타입의 switch문
package chapter4_1;
public class SwitchStringExample {
public static void main(String[] args) {
String position = "과장";
switch (position) {
case "부장":
System.out.println("700만원");
break;
case "과장":
System.out.println("500만원");
break;
default:
System.out.println("300만원");
break;
}
}
}
확인문제
1. 조건문의 종류를 쓰시오.
조건문 : if문, switch문
2. 조건문을 설명한 것 중 맞는 것은 무엇인가.
- if문은 조건식의 결과에 따라 실행 흐름을 달리할 수 있다. O
- if문은 조건식이 true이면 블록을 실행하고 false이면 블록을 실행하지 않는다. O
- if문의 블록 내부에는 또 다른 if문을 사용할 수 있다. O
- switch문에서 사용할 수 있는 변수의 타입은 int만 가능하다. O
3. 다음 코드를 실행했을 때 출력되는 내용을 적으시오.
package chapter4_1;
public class Quiz3 {
public static void main(String[] args) {
int score = 85;
System.out.print("등급은 ");
if (score < 70) {
System.out.print("D");
} else if (score < 80) {
System.out.print("C");
} else if (score < 90) {
System.out.print("B");
} else{
System.out.print("A");
}
System.out.println("입니다.");
}
}
등급은 B입니다.
4. 다음 코드를 실행했을 때 출력되는 내용을 적어보시오
package chapter4_1;
public class Quiz4 {
public static void main(String[] args) {
System.out.println("어떤 혜택을 원하세요?");
char grade = 'A';
switch (grade) {
case 'A' -> {
System.out.println("VVIP혜택을 받으실 수 있습니다.");
}
case 'B' -> {
System.out.println("VIP혜택을 받으실 수 있습니다.");
}
case 'C' -> {
System.out.println("우수 회원 혜택을 받으실 수 있습니다.");
}
case 'D' -> {
System.out.println("일반 회원 혜택을 받으실 수 있습니다.");
}default -> System.out.println("혜택이 없습니다.");
}
System.out.println("감사합니다.");
}
}
어떤 혜택을 원하세요?
VVIP혜택을 받으실 수 있습니다.
감사합니다.
'Java > 혼공자' 카테고리의 다른 글
JAVA) 반복문 for문, while문 do-while문 (1) | 2023.04.23 |
---|---|
JAVA) 연산자의 종류 (0) | 2023.04.19 |
JAVA) 연산자와 연산식 (0) | 2023.04.18 |