簡體   English   中英

Java-為什么不起作用?

[英]Java - Why won't this work?

這只是我用eclipse做的一個簡單的剪刀石頭布游戲,我早些時候就通過這個網站進行了測試,並得到了一些答案,但是現在我遇到了一個找不到贏家的問題?

package rockPaperScissors;

import java.util.Scanner;
import java.util.Random;

public class RockPaperScissors {

    public static void main(String args[]) {
        String playerChose;
        String computerChose;
        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();

            if (playerChose.equals("rock") && computerChose.equals("scissors") || playerChose.equals("paper") && computerChose.equals("rock") || playerChose.equals("scissors") && computerChose.equals("paper")) {
                System.out.println("Player won!");
            }
            if(playerChose.equals(computerChose)) {
                System.out.println("Game tied!");
            }
            if(computerChose.equals("rock") && playerChose.equals("scissors") || computerChose.equals("paper") && playerChose.equals("rock") || computerChose.equals("scissors") && computerChose.equals("paper")) {
                System.out.println("Computer won!");
            }
        }
    }
}

將您的初始computerChose聲明(在while之前)更改為String computerChose = ""; 並刪除讀取computerChose = new String(); switch )。

while語句之后,將使用computerChose = newString()重置computerChose = newString() 因此, if語句中測試的條件均不等於true。

經過測試和工作

立即初始化computerChose ,然后選擇
String computerChose; String computerChose = "";

並刪除computerChose = new String();選擇行computerChose = new String(); 因為在開關盒中初始化后,它會將computerChoose字符串設置為空字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM