Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java当我的proram以第一个值运行时,如何将新的输入放入?_Java_Loops_If Statement_Java.util.scanner_Repeat - Fatal编程技术网

Java当我的proram以第一个值运行时,如何将新的输入放入?

Java当我的proram以第一个值运行时,如何将新的输入放入?,java,loops,if-statement,java.util.scanner,repeat,Java,Loops,If Statement,Java.util.scanner,Repeat,对不起,我对编程非常陌生,我正在尝试制作一个石头、布、剪刀的程序。它似乎工作得很好,但一旦我输入(石头、布、剪刀),它就会给出我的结果,然后在控制台中终止。我怎样才能得到它,这样我就可以玩更多的回合,它可以保存我的分数,而不必再次运行程序。我尝试使用for和while循环,但它所做的只是打印游戏结果,打印次数与循环次数相同,然后终止。 再次抱歉,如果有人问我这个问题,或者是非常明显的,我只是到处找,不知道。 主代码 public class RockPaperScissorsMain {

对不起,我对编程非常陌生,我正在尝试制作一个石头、布、剪刀的程序。它似乎工作得很好,但一旦我输入(石头、布、剪刀),它就会给出我的结果,然后在控制台中终止。我怎样才能得到它,这样我就可以玩更多的回合,它可以保存我的分数,而不必再次运行程序。我尝试使用for和while循环,但它所做的只是打印游戏结果,打印次数与循环次数相同,然后终止。 再次抱歉,如果有人问我这个问题,或者是非常明显的,我只是到处找,不知道。 主代码

public class RockPaperScissorsMain {
    
public static void main(String[] args) {

   System.out.println("Hello and welcome to Rock, Paper, Scissors");
   System.out.println("Please select either Rock, Paper or Scissors...");
   System.out.println("You can type \"Quit\" at any time to exit the game =)");

   ActionClass myMethod= new ActionClass();
            myMethod.method(); 
    }   
}
代码


ActionClass中存在大量错误。我在这里修复了它:

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

public class ActionClass {

    int winCounter = 0;
    int loseCounter = 0;                  //COUNTER VARIABLES
    int tieCounter = 0;

    public void method() {
        String[] selection = {"Rock", "Paper", "Scissors"};
        Random rand = new Random();                                                  // VARIABLES
        Scanner scanny = new Scanner(System.in);
        char inputChar = scanny.nextLine().charAt(0);
        char playerSelection = Character.toLowerCase(inputChar);

        while (playerSelection != 'q') {
            String opponentSelection = selection[rand.nextInt(3)];
            if (playerSelection == 'q') {
                System.out.println("===============================================================================");
                System.out.println("THANK YOU FOR PLAYING TAKE CARE!!!");
                System.out.println("==============================================================================");
                System.exit(0);
            } else if (playerSelection == 'r') {
                System.out.println("you said " + selection[0] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);
                System.out.println("======================================================================================================================================================");
            } else if (playerSelection == 'p')
                System.out.println("you said " + selection[1] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);

            else if (playerSelection == 's')
                System.out.println("you said " + selection[2] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);

            else System.out.println("\nSorry please select a valid option of ROCK, PAPER or SCISSORS");

            if (opponentSelection.equals(selection[0])) {
                System.out.println("you TIED");
                tieCounter++;
            }
            if (opponentSelection.equals(selection[1])) {
                System.out.println("you LOSE");
                loseCounter++;
            }
            if (opponentSelection.equals(selection[2])) {
                System.out.println("you WIN");
                winCounter++;
            }
            if ((inputChar == 'r') || inputChar == 'p' || inputChar == 's') {
                System.out.println("Good Game!!!");
                System.out.println("\n\n\t\t\t\t\tPlay again!! please select either Rock, Paper or Scissors...");
                System.out.println("\n\t\t\t\t\tYou've WON: " + winCounter + " times!!!" + "You\'ve TIED " + tieCounter + " times!!! You've LOST: " + loseCounter + " times!!!");
            }
            playerSelection = scanny.nextLine().charAt(0);
        }
    }
}
基本上,您需要将逻辑放入一个循环中,这一行就是这样做的:
while(playerSelection!=“q”)

程序获得输入并进行R、p、S检查后,在while循环结束前的最后一行再次调用scanner,以了解用户的下一个意图

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

public class ActionClass {

    int winCounter = 0;
    int loseCounter = 0;                  //COUNTER VARIABLES
    int tieCounter = 0;

    public void method() {
        String[] selection = {"Rock", "Paper", "Scissors"};
        Random rand = new Random();                                                  // VARIABLES
        Scanner scanny = new Scanner(System.in);
        char inputChar = scanny.nextLine().charAt(0);
        char playerSelection = Character.toLowerCase(inputChar);

        while (playerSelection != 'q') {
            String opponentSelection = selection[rand.nextInt(3)];
            if (playerSelection == 'q') {
                System.out.println("===============================================================================");
                System.out.println("THANK YOU FOR PLAYING TAKE CARE!!!");
                System.out.println("==============================================================================");
                System.exit(0);
            } else if (playerSelection == 'r') {
                System.out.println("you said " + selection[0] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);
                System.out.println("======================================================================================================================================================");
            } else if (playerSelection == 'p')
                System.out.println("you said " + selection[1] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);

            else if (playerSelection == 's')
                System.out.println("you said " + selection[2] + "\t\t\t\t\t\t\t\t\t\t\t Your opponent chooses... " + opponentSelection);

            else System.out.println("\nSorry please select a valid option of ROCK, PAPER or SCISSORS");

            if (opponentSelection.equals(selection[0])) {
                System.out.println("you TIED");
                tieCounter++;
            }
            if (opponentSelection.equals(selection[1])) {
                System.out.println("you LOSE");
                loseCounter++;
            }
            if (opponentSelection.equals(selection[2])) {
                System.out.println("you WIN");
                winCounter++;
            }
            if ((inputChar == 'r') || inputChar == 'p' || inputChar == 's') {
                System.out.println("Good Game!!!");
                System.out.println("\n\n\t\t\t\t\tPlay again!! please select either Rock, Paper or Scissors...");
                System.out.println("\n\t\t\t\t\tYou've WON: " + winCounter + " times!!!" + "You\'ve TIED " + tieCounter + " times!!! You've LOST: " + loseCounter + " times!!!");
            }
            playerSelection = scanny.nextLine().charAt(0);
        }
    }
}