Java 如果报表不起作用,请使用岩石剪纸机
当我运行此命令时,它会显示案例中的所有Java 如果报表不起作用,请使用岩石剪纸机,java,Java,当我运行此命令时,它会显示案例中的所有System.out.println(“”语句。我如何让它选择正确的if语句而不选择其他语句 如果我能在找到结果后回到开始,那也会很有帮助 import java.util.Scanner; import java.util.Random; public class TEST { private static Scanner myScanner; public static void main(String[] args) { myScanner
System.out.println(“”
语句。我如何让它选择正确的if
语句而不选择其他语句
如果我能在找到结果后回到开始,那也会很有帮助
import java.util.Scanner;
import java.util.Random;
public class TEST {
private static Scanner myScanner;
public static void main(String[] args) {
myScanner = new Scanner(System.in);
Random myRandom = new Random();
int randomNumber;
char reply;
System.out.print("Rock(R) Paper(P) or Scissors(S)? ");
reply = myScanner.findWithinHorizon(".", 0).charAt(0);
randomNumber = myRandom.nextInt(3) + 1;
switch (randomNumber) {
case 1:
if (reply == 'S' || reply == 's'); {
System.out.println("Computer: Rock. You lost!");
}
if (reply == 'R' || reply == 'r'); {
System.out.println("Computer: Rock. You tied!");
}
if (reply == 'P' || reply == 'p'); {
System.out.println("Computer: Rock. You won!");
break;
}
case 2:
if (reply == 'P' || reply == 'p'); {
System.out.println("Computer: Paper. You tied!");
}
if (reply == 'S' || reply == 's'); {
System.out.println("Computer: Paper. You won!");
}
if (reply == 'R' || reply == 'r'); {
System.out.println("Computer: Paper. You lost!");
break;
}
case 3:
if (reply == 'R' || reply == 'r'); {
System.out.println("Computer: Scissor. You won!");
}
if (reply == 'P' || reply == 'p'); {
System.out.println("Computer: Scissor. You lost!");
}
if (reply == 'S' || reply == 's'); {
System.out.println("Computer: Scissor. You tied!");
break;
}
}
}
}
您在if之后添加了一个额外的
代码>
if语句的语法为:
if(condition){
Expressions;
}
分号表示:
if(condition)
; //empty line, effectively ignores the if
{
Expressions;
}
您在if之后添加了一个额外的代码>
if语句的语法为:
if(condition){
Expressions;
}
分号表示:
if(condition)
; //empty line, effectively ignores the if
{
Expressions;
}
你有两个问题:
1) if语句不会运行,因为它们以分号结尾。这意味着{}中的代码形成一个块并以任意方式运行
2) 你的休息时间放错地方了。只有选择了“R”(或“R”)时,第一个才中断。如果案例运行,则后一个将中断
if (reply == 'P' || reply == 'p'); {
System.out.println("Computer: Paper. You tied!");
}
if (reply == 'S' || reply == 's'); {
System.out.println("Computer: Paper. You won!");
}
if (reply == 'R' || reply == 'r'); {
System.out.println("Computer: Paper. You lost!");
break;
}
vs
此外,正如注释中所建议的,您可以使用循环来提示输入。例如:
while (! done) {
System.out.print("Rock(R) Paper(P) or Scissors(S)? (or Quit(Q) ");
reply = myScanner.findWithinHorizon(".", 0).charAt(0);
// more code here
}
您需要在此处使用另一个case,以便将done设置为true并结束循环。您有两个问题:
1) if语句不会运行,因为它们以分号结尾。这意味着{}中的代码形成一个块并以任意方式运行
2) 你的休息时间放错地方了。只有选择了“R”(或“R”)时,第一个才中断。如果案例运行,则后一个将中断
if (reply == 'P' || reply == 'p'); {
System.out.println("Computer: Paper. You tied!");
}
if (reply == 'S' || reply == 's'); {
System.out.println("Computer: Paper. You won!");
}
if (reply == 'R' || reply == 'r'); {
System.out.println("Computer: Paper. You lost!");
break;
}
vs
此外,正如注释中所建议的,您可以使用循环来提示输入。例如:
while (! done) {
System.out.print("Rock(R) Paper(P) or Scissors(S)? (or Quit(Q) ");
reply = myScanner.findWithinHorizon(".", 0).charAt(0);
// more code here
}
您需要另一个案例,以便将done设置为true并结束循环。奖励练习:思考如何进一步简化程序,避免不必要的重复。使用Character.toLowerCase
,并为用户输入指定数值,这样做类似减法的操作可以帮助轻松确定赢/输状态。奖励练习:考虑如何进一步简化程序,避免不必要的重复。使用Character.toLowerCase
,并为用户输入指定数值,这样做类似减法的操作有助于轻松确定赢/输状态。还可以添加有关在过程中添加的注释,以重复程序,直到用户输入类似X
的内容退出。(OP询问此问题)还可以添加一条注释,说明如何添加while
循环以重复程序,直到用户输入类似X
的内容以退出。(OP要求这样做)