所以我一直在 youtube 上观看一些“thenewboston”,我一个小时前才开始学习 java,我似乎无法找到我的问题是什么。 (没有错误信息)
package rockPaperScissors;
import java.util.Scanner;
import java.util.Random;
public class RockPaperScissors {
public static void main(String args[]){
String playerChose;
String computerChose;
String winner;
while(true){
System.out.println("Welcome to rock paper scissors!");
System.out.println("Please enter \"rock\", \"paper\", or \"scissors\"");
Scanner playerChoice = new Scanner (System.in);
playerChose = playerChoice.nextLine();
Random computerChoice = new Random();
int computer = computerChoice.nextInt(3) + 1;
switch(computer){
case 1:
computerChose = "rock";
System.out.println("Computer chose rock!");
break;
case 2:
computerChose = "paper";
System.out.println("Computer chose paper!");
break;
case 3:
computerChose = "scissors";
System.out.println("Computer chose scissors!");
}
computerChose = new String();
winner = new String();
if(playerChose=="rock" && computerChose=="scissors" || playerChose=="paper" && computerChose=="rock" || playerChose=="scissors" && computerChose=="paper"){
winner="player";
}
if(playerChose==computerChose){
winner="NoWinner";
}
if(computerChose=="rock" && playerChose=="scissors" || computerChose=="paper" && playerChose=="rock" || computerChose=="scissors" && playerChose=="paper"){
winner="computer";
}
if(winner!="NoWinner"){
System.out.println(winner+" won!");
}else{
System.out.println("Game tied!");
}
}
}
}
是的,我对这个java东西很陌生,我不知道为什么这段代码不起作用,因为我确信它会起作用。我确信这只是我需要学习的愚蠢的东西。因为我来自 Python,所以这要复杂得多,因为有很多 Java 规则在 Python 中不存在。
最佳答案
要比较字符串,您必须使用 equals()
方法,而不是 ==
:
str1.equals(str2)
当您使用==
时,您正在比较内存引用,因为String
不是Java中的原始数据类型。尝试在 Google 上搜索它。
关于Java - 小石头剪刀布游戏。我找不到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167766/