![](/img/trans.png)
[英]How do I emplement a loop to get the program to ask the user for input again instead of ending the program
[英]Cannot get my Java program to ask for input again
我正在創建一個小的 Rock, Paper, Scissors 項目來進入 Java。 我是語言的新手。 我已經在我的項目中取得了相當大的進展,但我被困在了某個部分。 在“獲取玩家移動”部分,我希望它識別玩家是否輸入了 R、P 或 S,然后在需要時再次請求輸入。 我嘗試了多種方法來做到這一點,但都沒有正常工作。 我的代碼如下。
{
Random generator = new Random ();
Scanner in = new Scanner(System.in);
//Generate Random Computer Move
computerAi = 0;
computerAi = generator.nextInt(3)+1;
if (computerAi == 3)
computerMove = "S";
else if (computerAi == 2)
computerMove = "P";
else if (computerAi == 1)
computerMove = "R";
//Get Player Move
System.out.println("Enter R, P, or S. R= Rock, P= Paper, and S= Scissors: ");
playerMove = in.nextLine();
//Display Choices
System.out.println("You picked: " + playerMove);
System.out.println("Computer Picked: " + computerMove);
//Determine if Player or Computer Won
if (playerMove.equals(computerMove))
scoreCheck = 0;
else if (playerMove.equals("R"))
if (computerMove.equals("P"))
scoreCheck = -1;
else if (computerMove.equals("S"))
scoreCheck = 1;
else if (playerMove.equals("P"))
if (computerMove.equals("S"))
scoreCheck = -1;
else if (computerMove.equals("R"))
scoreCheck = 1;
else if (playerMove.equals("S"))
if (computerMove.equals("R"))
scoreCheck = -1;
else if(computerMove.equals("P"))
scoreCheck = 1;
//determine whether player won or lost
score += scoreCheck;
if (scoreCheck == 1)
System.out.println("You Won! Score:" + score);
else if (scoreCheck == 0)
System.out.println( "You Tied! Score:" + score);
else if (scoreCheck == -1)
System.out.println("You Lost! Score:" + score);
System.out.println(" ");
System.out.println("Type 'replay' to play again");
replay = in.nextLine();
scoreCheck = score;
}
}
}
我能夠訪問我為項目創建的原始 while 語句:
while (playerMove == ("None"))
44 - {
45 - System.out.println("Enter R, P, or S. R= Rock, P= Paper, and S= Scissors: ");
46- playerMove = in.nextLine();
47 - if (playerMove == ("R"))
48 - System.out.println (" ");
4948
50 - else if (playerMove == ("P"))
51 - System.out.println (" ");
52 -
53 - else if (playerMove ==("S"))
54 - System.out.println (" ");
55 -
56 - else if (playerMove != ("R"))
57 - {
58 - if (playerMove != ("P"))
59 - {
60 - if (playerMove != ("S"))
61 - {
62 - System.out.println("Incorrect Input. Please try again.");
63 - playerMove = "None";
64 - }
65 - else if (playerMove == ("S"))
66 -
67 - }
68 - }
69 - }
}
System.out.println("Enter R, P, or S. R= Rock, P= Paper, and S= Scissors: ");
playerMove = in.nextLine();
更改為類似:
String playerMove = null;
while (playerMove == null && !playerMove.matches("[rpsRPS]")) {
System.out.println("Enter R, P, or S. R= Rock, P= Paper, and S= Scissors: ");
playerMove = in.readline();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.