Java - 小石头剪刀布游戏。我找不到错误

标签 java

所以我一直在 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/

相关文章:

Java 控制台 API

java - Hibernate 可以用作 Google App Engine 中的 JPA 提供者吗

java - 在 DefaultSharedPreferances 中启用首选项并可选择

java - Java中的大分支树?

JAVA:如何根据属性值合并 arrayList 中的对象?

Java 8 相对于 HashMap 的性能

java - 是否可以查看 Tomcat 7 服务器的 Java 控制台?

java - Maven pom.xml - 构建模块+自构建

java - 在循环中验证?

java - 方法识别文件是否受 SVN 版本控制