조건문을 다양하게 사용하여 구현해보는 가위바위보
import java.util.Scanner;
public class IfTest02 {
public static void main(String[] args) {
//com, user
//가위:0, 바위:1, 보:2
int user;
Scanner sc=new Scanner(System.in);
System.out.println("가위:0, 바위:1, 보:2");
System.out.print("뭘 내볼까? 숫자로 입력해봐! : ");
user=sc.nextInt();
// if (user==0) {
// System.out.println("나는 가위!");
// } else if (user==1) {
// System.out.println("나는 바위!");
// } else {
// System.out.println("나는 보!");
// }
switch(user) {
case 0: System.out.println("나는 가위!"); break;
case 1: System.out.println("나는 바위!"); break;
case 2: System.out.println("나는 보!");
}
우선 내가 낼 값을 숫자로 입력해 봅시다
int com = (int) (Math.random()*3); //0.0~1.0미만 -> 0~3
// System.out.println(com);
switch(com) {
case 0: System.out.println("컴퓨터는 가위"); break;
case 1: System.out.println("컴퓨터는 바위"); break;
case 2: System.out.println("컴퓨터는 보"); break;
}
컴퓨터가 내는 값은 Math클래스의 random메서드를 이용하여 구현해줍니다
Math.randoum() 메서드는 0이상 1미만의 값을 더블 값으로 반환해줍니다
int com = (int) (Math.random()*3);
우리는 가위:0, 바위:1, 보:2 라는 규칙을 정했기 때문에
0이상 3미만의 랜덤 값을 받을 수 있도록 (Math.random()*3) 을 해주고 double 값을 int 값으로 캐스팅하여
0, 1, 2 의 값만 나올 수 있도록 해줍니다
switch를 이용한 승패 결과 출력!
//출력: 당신이 이겼습니다., 서로 비겼습니다., 당신이 졌습니다.
System.out.println("두구두구 결과는?");
int result = user-com;
switch (result) {
case 0: System.out.println("비겼다"); break;
case -2: case 1: System.out.println("이겼다!"); break;
case-1: case 2: System.out.println("졌다ㅠ"); break;
}
//이기는 경우: 0:2, 1:0, 2:1
//지는 경우: 0:1, 1:2, 2:0
//비기는 경우: 0:0, 1:1, 2:2
user 값과 com 값의 차이를 이용하여 승패 결과를 출력해주었습니다
If Else를 이용한 승패 결과 출력!
//이기는 경우: 0:2, 1:0, 2:1
//지는 경우: 0:1, 1:2, 2:0
//비기는 경우: 0:0, 1:1, 2:2
if(user==0) {
if(com==0)
System.out.println("서로 비겼습니다.");
else if(com==1)
System.out.println("당신이 졌습니다.");
else if(com==2)
System.out.println("당신이 이겼습니다.");
}else if(user==1) {
if(com==0)
System.out.println("당신이 이겼습니다.");
else if(com==1)
System.out.println("서로 비겼습니다.");
else if(com==2)
System.out.println("당신이 졌습니다.");
} else if (user==2) {
if(com==1)
System.out.println("당신이 이겼습니다.");
else if(com==2)
System.out.println("서로 비겼습니다.");
else if(com==0)
System.out.println("당신이 졌습니다.");
}
}
}
반복적으로 입력되는 코드가 많고 길어지네요
switch와 if의 차이점
코드가 길어지고 복잡해진다면 어떤 조건문을 사용하는 것이 더 효율적인가요?
정답은 switch!
if문은 else if까지 쭉 조건을 훑어내려가야 하기 때문에 코드가 길어지면 시간이 더 많이 소요됩니다
switch는 한번 확인한 후 해당하는 결과값을 딱! 찾으러 가면 되니까 좀 더 빨라요
그리고 break;를 걸지 않으면 여러개의 실행문을 중첩하여 실행시킬 수도 있다는 점
여러가지로 활용해보고 상황에 적절한 조건문을 활용해보세요
'JAVA' 카테고리의 다른 글
시험 점수를 입력받아 총점, 평균 구하기 (0) | 2022.10.07 |
---|---|
자바 반복문을 이용한 구구단 출력(while, do while, for) (0) | 2022.10.05 |
자바 반복문 while, do while, for 기본 문법 (0) | 2022.09.30 |
자바 void? (0) | 2022.09.30 |
자바 조건문 If, Else, Else if, Switch 기본 문법, 간단한 예제 (0) | 2022.09.29 |
LogicalTest (0) | 2022.09.29 |
LiteralsTest (0) | 2022.09.29 |
삼항연산자 기본 문법, 사용 방법, 활용법 (0) | 2022.09.28 |
댓글