본문 바로가기

내가 헷갈려서 정리하는 코딩/JAVA

내가 헷갈려서 정리하는 JAVA - 가위바위보(if, switch)

728x90
반응형

// 콰이바이보 If문 사용

public static void main(String[] args) {
		Scanner    in    =  new Scanner(System.in);
		// 가위, 바위, 보
		// A.  컴퓨터 (1.가위, 2.바위, 3.보)
		// B.  유저   (1.가위, 2.바위, 3.보)
		System.out.println("A. 컴퓨터 (1.가위, 2.바위, 3.보):");
		int       val1   = in.nextInt(); 
		System.out.println("B. 유저   (1.가위, 2.바위, 3.보):");
		int       val2   = in.nextInt();
		
		String    result = "";
		
		// A 1. 가위
		if( val1 == 1 ) {
			if( val2 == 1 ) result = "비김"; 
			if( val2 == 2 ) result = "이김"; 
			if( val2 == 3 ) result = "짐"; 
		} 
		// A 2. 바위
		if( val1 == 2 ) {
			if( val2 == 1 ) result = "짐"; 
			if( val2 == 2 ) result = "비김"; 
			if( val2 == 3 ) result = "이김"; 
		} 
		// A 3. 보
		if( val1 == 3 ) {
			if( val2 == 1 ) result = "이김"; 
			if( val2 == 2 ) result = "짐"; 
			if( val2 == 3 ) result = "비김"; 
		} 
		
		System.out.println(result);
	

	}

}

if 문 안에 각 경우에 따른 if문을 추가로 사용할 때는 result를 이용해서 이렇게 나타낼 수 있습니다.

 

오잉 근데 이렇게 하면 컴퓨터도 제가 입력하는거네요??

 

수업할 때는 컴퓨터는 랜덤으로 내는걸로 했었는데

컴퓨터가 랜덤으로 내는걸 하고 싶다면 random 함수를 쓰면 되요!

System.out.println("1 = 가위, 2 = 바위, 3 = 보"); 
		
		 int       A      = (int)(Math.random()*3)+1;
		 System.out.println("com : " + A);

com이 내는건 랜덤으로 고를 수 있게 바꿨어요

(여기서 +1을 하는 이유는 컴퓨터는 0을 시작으로 생각하기 때문에 +1을 해줘야 합니다)

 

// 콰이바이보 switch문 사용

          Random    rnd    =  new Random();
		int       val1   =  rnd.nextInt(3) + 1 ;// 0~2 + 1
		System.out.println("컴퓨터의 선택:" + val1);
		
		System.out.println("B. 유저   (1.가위, 2.바위, 3.보):");
		int       val2   = in.nextInt();
		
		String    result = "";
		
		switch( val1 ) {
		case 1:
			switch(val2) {
			case 1: result = "비김"; break;
			case 2: result = "이김"; break;
			case 3: result = "짐";   break;
			}			 
			break;
		case 2:
			switch(val2) {
			case 1: result = "짐"; break;
			case 2: result = "비김"; break;
			case 3: result = "이김";   break;
			}		 
			break;
		case 3:
			switch(val2) {
			case 1: result = "이김"; break;
			case 2: result = "짐"; break;
			case 3: result = "비김";   break;
			}		
			break;

random 함수도 new 선언으로 더 깔끔하게 만들 수 있고

swtich를 활용하여 case별로 나누는게 더 깔끔한거 같긴 하네요

728x90
반응형