2012-06-28 7 views
0

나는 바위 종이 가위 프로그램을 만들고 있습니다. 나는 프로그램의 사용자가 바위, 종이 또는 가위 (따라서 가져온 스캐너)를 입력하고 컴퓨터가 다른 바위, 종이에 해당하는 임의의 숫자 (내가 java.util.Random을 가져올 것입니다)를 선택하기를 원합니다. , 또는 가위.변수로 단어를 설정하는 것에 관한 Java 질문

그래서 나는 중요한 단어로 프로그램을 인식하려고 노력하고있다. 즉, 사용자가 스캐너에 "rock"을 입력하면 컴퓨터는 일부 출력을 수행합니다. 아래의 코드에서, 사용자가 "rock"을 입력하면 컴퓨터가 "yes"를 출력하도록했습니다. 이를 위해 "player"라는 변수를 입력 된 텍스트로 설정하고 String rock을 "rock"이라는 구로 설정합니다. 나는 플레이어 = 락 (= "록")이라면 "예"라고 말할 것입니다.

프로그램에 오류가 없습니다. 그러나 스캐너에 "rock"을 입력했을 때 프로그램은 아무 것도하지 않았습니다. 무엇이 잘못되었으며 어떻게 해결할 수 있습니까?

import java.util.Scanner;

공용 클래스 정제는 {

public static void main(String[] args){ 
    Scanner abc = new Scanner(System.in); 
    String rock = "rock"; 

    String player; 
    System.out.println("Rock, Paper, or Scissors?"); 
    player = abc.next(); 
    if(player == rock){ 
     System.out.println("yes"); 

    } 
} 
+0

많은 중복이 있습니다 ... 검색 "자바 문자열 같음" –

답변

0

당신은 if 상태 player.equals(rock)합니다.

퍼팅는 기본적으로 String 개체에 저장된 값이 아니라 String 개체 (기본적으로 메모리 지점이 동일한 지점에있는 참조인지 여부)를 비교합니다.

1

사용 player.equals(rock) 또는 player.equalsIgnoreCase(rock)이 두 변수의 내용을 비교하는

우리는 두 개의 문자열이 경우 참조는 false를 반환 왜 차이가 있습니다 그렇게는 객체 모두의 references을 비교 개체를 비교하는 ==을 적용하는 경우와 System.out.println("yes");이 인쇄되지 않습니다.

String.equals() 또는 String.equalsIgnoreCase() 메서드를 사용하면 문자열의 내용을 비교할 수 있습니다.

0

플레이어와 바위는 String 개체입니다. Java에서는 int 형, float 형 등의 String을 사용하지 않습니다. 두 개의 객체를 비교하려면 .equals()를 사용해야합니다. [Object 클래스에서 제공]

관련 문제