[英]How can I read a number in between 2 numbers?
我对Java相当陌生,我正在尝试编写一个小程序,要求用户输入0-4之间的整数。 到目前为止,我已经写了这篇文章,但是似乎没有用! 谁能告诉我我哪里错了?
import java.util.Scanner;
public class GameCharSelect {
public static void main(String[] argh){
int myChar;
Scanner in = new Scanner(System.in);
{
System.out.print("choose a player: ");
myChar = in.nextInt();
}while(myChar>0 && myChar<4);
System.out.println("--------");
System.out.println("you chose "+ myChar);
}
}
现在,我希望该数字为1,2或3,否则它将一直循环播放直到用户输入其中一个,但程序此时接受任何数字。 我哪里错了?
您在循环中缺少do
关键字。 另外,您的条件也应被撤销:
public static void main(String[] argh) {
int myChar;
Scanner in = new Scanner(System.in);
do {
System.out.print("choose a player: ");
myChar = in.nextInt();
} while (myChar <= 0 || myChar >= 4);
System.out.println("--------");
System.out.println("you chose " + myChar);
}
您的while条件不正确。
要检查,如果char
比0大于4 和更低的,如果是,它会再次进行循环,当你以后有什么是oposite。
更改语句来检查,如果myChar大于1小于3 或更高。
myChar < 1 || myChar > 3
在do-while
的开头,您还缺少一个do
。
您在代码中遇到两个问题:
我的代码将是这样的:
import java.util.Scanner;
public class GameCharSelect {
public static void main(String[] argh){
int myChar;
Scanner in = new Scanner(System.in);
do{
System.out.print("choose a player: ");
myChar = in.nextInt();
} while(myChar<1 || myChar>3);
System.out.println("--------");
System.out.println("you chose "+ myChar);
}
}
您的循环应如下所示
while (true) {
System.out.print("Choose a player: ");
myChar = in.nextInt();
if (myChar > 0 && myChar < 4) {
break; // out of the loop
}
}
那是你唯一的break;
如果扫描的值是1、2或3,则超出此范围。
@ Ali, while(true)
方法非常好。 实际上,在实际代码中看到它们比在do-while()
中见得多。 收到的否决票是主观的,并且基于个人的编码样式偏好,而不是基于答案正确性的指示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.