Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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意外的编程结果_Java_If Statement - Fatal编程技术网

Java意外的编程结果

Java意外的编程结果,java,if-statement,Java,If Statement,我想写一个关于谁会拿走最后一个弹珠的游戏,我已经成功地运行了它。但是,当我试图向它添加一些错误消息时,例如当输入超出范围时显示“不正确的范围”,它无法正常工作。我知道问题是由于变量“totalNum”的错误识别造成的,但如何解决它呢?提前感谢:) publicstaticvoidmain(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int pn=1; 系统输出打印(“大理石初始编号[10~100]:”; int totalNum=in.nextInt(); int输入=0; in

我想写一个关于谁会拿走最后一个弹珠的游戏,我已经成功地运行了它。但是,当我试图向它添加一些错误消息时,例如当输入超出范围时显示“不正确的范围”,它无法正常工作。我知道问题是由于变量“totalNum”的错误识别造成的,但如何解决它呢?提前感谢:)

publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int pn=1;
系统输出打印(“大理石初始编号[10~100]:”;
int totalNum=in.nextInt();
int输入=0;
int from=1;
int-to=totalNum/2;
如果(totalNum<10 | | totalNum>100){
System.out.println(“范围不正确,请重试!”);
系统输出打印(“大理石初始编号[10~100]:”;
totalNum=in.nextInt();
}
否则{
while(totalNum>1){
totalNum=in.nextInt();
系统输出打印(“播放器”+pn+”[“+from+”~“+to+”]:”;
input=in.nextInt();
如果(输入<从| |输入>到){
System.out.println(“范围不正确,请重试!”);
继续;
}
totalNum=totalNum-输入;
System.out.println(“剩余弹珠数量:“+totalNum”);
如果(pn==1){
pn=2;
}
否则{
pn=1;
}
}
}
System.out.println(“玩家”+pn+“拿走最后一个弹珠”);
如果(pn==1){
pn=2;
}
否则{
pn=1;
}       
System.out.println(“玩家”+pn+“获胜!”);
}

我想while循环中的这一行就是问题所在:

totalNum = in.nextInt();
它不断尝试从用户获取下一个输入,但没有第二个整数。不知道那之后会发生什么

此外,您的整个计划似乎大致相当于

totalNum%2+1

然后打印答案。

到底是什么问题?什么不起作用?它是如何失败的?你需要使用一个循环,反复要求用户输入,直到他们提供一个有效的值。“它不工作”不是一个有意义的问题描述。在调试器中逐步执行此操作并观察其行为。它与您的期望有什么不同?
totalNum%2+1