我的程序由于某种原因终止。它是一个摇滚剪刀模拟。 当我在第一个nextLine中输入内容时终止。 如果有人可以请求帮助。
import java.util.*;
import java.math.*;
public class RockPapperScissors {
/**
* @param args
*/
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String comp, user;
comp=getComp();
System.out.println("Enter rock, paper, or scissors");
user=in.nextLine();
winner(comp, user);
}
public static String getComp(){
Random rand=new Random();
String answer;
int ran=rand.nextInt(3);
if(ran==1)
answer="rock";
else if(ran==2)
answer="paper";
else
answer="scissors";
return answer;}
public static void winner(String com, String use){
if(com=="rock" && use=="rock")
System.out.println("Its a tie");
else if(com=="rock" && use=="paper")
System.out.println("You win!");
else if(com=="rock" && use=="scissors")
System.out.println("Computer wins, you FAIL");
else if(com=="paper" && use=="rock")
System.out.println("Computer wins, you FAIL");
else if(com=="paper" && use=="paper")
System.out.println("Its a tie");
else if(com=="paper" && use=="Scissors")
System.out.println("You win!");
else if(com=="scissors" && use=="rock")
System.out.println("You win");
else if(com=="scissors" && use=="paper")
System.out.println("Computer wins, you FAIL");
else if(com=="scissors" && use=="scissors")
System.out.println("Its a tie");}
}
答案 0 :(得分:5)
对于字符串比较,请使用.equals()
而不是==
。
答案 1 :(得分:2)
因为字符串被分配给公共池,所以“==”比较将不会按照您的意图运行。使用String的equals()方法进行比较。