Java 石头、布、剪刀游戏不正确记分
我的石头、布、剪刀游戏有问题。当我玩游戏时,它会将赢或输记录为赢和输。我正在努力让它记录一场胜利和一场失败,而不是给胜利和失败加一分。有什么建议吗Java 石头、布、剪刀游戏不正确记分,java,Java,我的石头、布、剪刀游戏有问题。当我玩游戏时,它会将赢或输记录为赢和输。我正在努力让它记录一场胜利和一场失败,而不是给胜利和失败加一分。有什么建议吗 import java.io.*; public class RPS { static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); static int x; public static void main(String
import java.io.*;
public class RPS {
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
static int x;
public static void main(String[] args) throws IOException {
int choice;
do {
System.out.println("Game Menu");
System.out.println("---------------------------------------------");
System.out.println("1. Start Game");
System.out.println("2. Quit Program");
choice = Integer.valueOf(in.readLine()).intValue();
if(choice == 1) {
System.out.println("Welcome to Rock, Paper, Scissors");
System.out.println("---------------------------------------------");
System.out.println("Please enter Rock, Paper or Scissors to play");
int wins = 0, loss = 0, ties = 0;
String user = in.readLine();
String comp="";
int compc=(int)(3*Math.random())+1;
if (compc==1) {
comp="Rock";
}
else if (compc==2) {
comp="Paper";
}
else if (compc==3) {
comp="Scissors";
}
if (user.equals("Rock") || user.equals("rock")) {
System.out.println("You chose : Rock");
user = "Rock";
}
else if (user.equals("Paper") || user.equals("paper")) {
System.out.println("You chose : Paper");
user = "Paper";
}
else if (user.equals("Scissors")|| user.equals("scissors")) {
System.out.println("You chose : Scissors");
user = "Scissors";
}
else {
System.out.println("Error: Please type Rock, Paper or Scissors");
}
System.out.println("Computer: I chose " + comp);
if(user.equals(comp)) {
System.out.println("It's a tie!");
ties++;
}
else if (user.equals("Rock")) {
if (comp.equals("Scissors"))
System.out.println("Rock beats scissors, congrats you win!");
wins++;
if (comp.equals("Paper"))
System.out.println("Paper beats rock, sorry you lost!");
loss++;
}
else if (user.equals("Paper")) {
if (comp.equals("Rock"))
System.out.println("Paper beats rock, congrats you win!");
wins++;
if (comp.equals("Scissors"))
System.out.println("Scissors beats paper, sorry you lost!");
loss++;
}
else if (user.equals("Scissors")) {
if (comp.equals("Paper"))
System.out.println("Scissors beats paper, congrats you win!");
wins++;
if (comp.equals("Rock"))
System.out.println("Rock beats scissors, sorry you lost!");
loss++;
}
System.out.println("Total wins : " +wins);
System.out.println("Total losses : " +loss);
System.out.println("Total ties : " +ties);
}
if (choice == 2) {
System.out.println("Good-bye!");
in.close();
}
} while (choice !=2);
}
}
在缩进的条件代码周围需要大括号:
{}
。与Python等语言不同,Java中的缩进没有语义意义
比如说
if (comp.equals("Rock"))
System.out.println("Paper beats rock, congrats you win!");
wins++;
同:
if (comp.equals("Rock")) {
System.out.println("Paper beats rock, congrats you win!");
}
wins++;
i、 e.wins
无条件递增
尝试:
在缩进的条件代码周围需要大括号:
{}
。与Python等语言不同,Java中的缩进没有语义意义
比如说
if (comp.equals("Rock"))
System.out.println("Paper beats rock, congrats you win!");
wins++;
同:
if (comp.equals("Rock")) {
System.out.println("Paper beats rock, congrats you win!");
}
wins++;
i、 e.wins
无条件递增
尝试:
wins++
和loss++
不是if
语句的一部分,因此每次都会执行
wins++
和loss++
不属于if
语句的一部分,因此每次都会被执行。查看win++和loss++-无论结果如何,它们都会被自动调用。。。您需要将代码放入if语句中。。。java中的if语句将自动包含下一行,但不在第一行之后,因此您需要执行以下操作:
if(condition to be met){
System.out.println("BLAH");
win++
}
我养成了一个习惯,总是包括花括号,除非我有空间问题。我发现它更容易阅读
新手犯的错误——作为一名刚毕业的工商管理学院毕业生——你会犯很多错误的——相信我。继续往前走。祝你好运看看赢家++和输家++-不管结果如何,他们都会被自动调用。。。您需要将代码放入if语句中。。。java中的if语句将自动包含下一行,但不在第一行之后,因此您需要执行以下操作:
if(condition to be met){
System.out.println("BLAH");
win++
}
我养成了一个习惯,总是包括花括号,除非我有空间问题。我发现它更容易阅读
新手犯的错误——作为一名刚毕业的工商管理学院毕业生——你会犯很多错误的——相信我。继续往前走。祝你好运