Java 检查用户输入和循环
我的Java 检查用户输入和循环,java,Java,我的for循环遇到问题 我的目标是 检查用户输入的是整数而不是字符串 循环6次,每次提示用户输入 使用当前代码,我得到以下输出: Enter integer: a invalid input Enter integer: invalid input Enter integer: invalid input Enter integer: invalid input Enter integer: invalid input Enter integer: invalid input BUI
for
循环遇到问题
我的目标是
Enter integer:
a
invalid input
Enter integer:
invalid input
Enter integer:
invalid input
Enter integer:
invalid input
Enter integer:
invalid input
Enter integer:
invalid input
BUILD SUCCESSFUL (total time: 3 seconds)
我能够检查用户输入的整数。但是,我的for
循环似乎无法正常工作。我可以请求这方面的帮助吗
下面是我的代码:
String a = "";
int count;
for (count = 0; count < 6; count++) {
System.out.println("Enter integer: ");
if (keyboard.hasNextInt()) {
System.out.println(a + "is correct integer");
}
else {
System.out.println("invalid input");
}
}
字符串a=”“;
整数计数;
用于(计数=0;计数<6;计数++){
System.out.println(“输入整数:”);
if(keyboard.hasNextInt()){
System.out.println(a+“是正确的整数”);
}
否则{
System.out.println(“无效输入”);
}
}
试试这个:
它消耗了错误的线路,并且再次消耗了您的线路
String a = "";
int count;
Scanner keyboard = new Scanner(System.in);
for (count = 0; count < 6; count++) {
System.out.println("Enter integer: ");
if (keyboard.hasNextInt()) {
a = String.valueOf(keyboard.nextInt());
System.out.println(a + "is correct integer");
} else {
System.out.println("invalid input");
keyboard.nextLine();
}
}
字符串a=”“;
整数计数;
扫描仪键盘=新扫描仪(System.in);
用于(计数=0;计数<6;计数++){
System.out.println(“输入整数:”);
if(keyboard.hasNextInt()){
a=String.valueOf(keyboard.nextInt());
System.out.println(a+“是正确的整数”);
}否则{
System.out.println(“无效输入”);
keyboard.nextLine();
}
}
试试这个:
它消耗了错误的线路,并且再次消耗了您的线路
String a = "";
int count;
Scanner keyboard = new Scanner(System.in);
for (count = 0; count < 6; count++) {
System.out.println("Enter integer: ");
if (keyboard.hasNextInt()) {
a = String.valueOf(keyboard.nextInt());
System.out.println(a + "is correct integer");
} else {
System.out.println("invalid input");
keyboard.nextLine();
}
}
字符串a=”“;
整数计数;
扫描仪键盘=新扫描仪(System.in);
用于(计数=0;计数<6;计数++){
System.out.println(“输入整数:”);
if(keyboard.hasNextInt()){
a=String.valueOf(keyboard.nextInt());
System.out.println(a+“是正确的整数”);
}否则{
System.out.println(“无效输入”);
keyboard.nextLine();
}
}
您没有使用任何用户输入,如果您要阅读int
,则a
应该是int
。我想你想要像这样的东西
for (int count = 0; count < 6; count++) {
System.out.println("Enter integer: ");
if (keyboard.hasNextInt()) {
int a = keyboard.nextInt();
System.out.printf("%d is an integer%n", a);
} else {
System.out.println("invalid input " + keyboard.nextLine());
}
}
for(int count=0;count<6;count++){
System.out.println(“输入整数:”);
if(keyboard.hasNextInt()){
int a=键盘.nextInt();
System.out.printf(“%d是一个整数%n”,a);
}否则{
System.out.println(“无效输入”+键盘.nextLine());
}
}
您没有使用任何用户输入,如果您要阅读int
,则a
应该是int
。我想你想要像这样的东西
for (int count = 0; count < 6; count++) {
System.out.println("Enter integer: ");
if (keyboard.hasNextInt()) {
int a = keyboard.nextInt();
System.out.printf("%d is an integer%n", a);
} else {
System.out.println("invalid input " + keyboard.nextLine());
}
}
for(int count=0;count<6;count++){
System.out.println(“输入整数:”);
if(keyboard.hasNextInt()){
int a=键盘.nextInt();
System.out.printf(“%d是一个整数%n”,a);
}否则{
System.out.println(“无效输入”+键盘.nextLine());
}
}
您需要扫描系统中的值,因此请使用导入扫描仪
**
使用此代码
**
Scanner s=新的扫描仪(System.in);
int i;
字符串a=“”;
整数计数;
对于(count=0;count)您需要扫描系统中的值,因此请使用导入扫描仪
**
使用此代码
**
Scanner s=新的扫描仪(System.in);
int i;
字符串a=“”;
整数计数;
对于(count=0;count您必须使用键盘输入,否则它仍将存在于后续循环迭代中
if(keyboard.hasNextInt())
{
// consume the input by calling nextInt()
System.out.println(keyboard.nextInt() + " is correct integer");
}
else
{
// consume the input by calling next()
System.out.println("invalid input " + keyboard.next());
}
您必须使用键盘输入,否则它仍将存在于后续循环迭代中
if(keyboard.hasNextInt())
{
// consume the input by calling nextInt()
System.out.println(keyboard.nextInt() + " is correct integer");
}
else
{
// consume the input by calling next()
System.out.println("invalid input " + keyboard.next());
}
您的代码需要进行以下更改:
为字符串指定输入值:
if (keyboard.hasNextInt()) {
a = keyboard.next();
System.out.println(a + "is correct integer");
} else {
a = keyboard.next();
System.out.println("invalid input");
}
正确初始化键盘变量:
Scanner keyboard = new Scanner(System.in);
这个问题可能会有帮助
.您的代码需要进行以下更改:
为字符串指定输入值:
if (keyboard.hasNextInt()) {
a = keyboard.next();
System.out.println(a + "is correct integer");
} else {
a = keyboard.next();
System.out.println("invalid input");
}
正确初始化键盘变量:
Scanner keyboard = new Scanner(System.in);
这个问题可能会有帮助
.用于(int i=0;i<6;i++){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入整数:”);
char value=input.nextLine().charAt(0);
if(字符isDigit(值)){
System.out.println(值+“是正确的整数”);
}否则{
System.out.println(值+无效输入);
}
}
用于(int i=0;i<6;i++){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入整数:”);
char value=input.nextLine().charAt(0);
if(字符isDigit(值)){
System.out.println(值+“是正确的整数”);
}否则{
System.out.println(值+无效输入);
}
}
谢谢Jens。如果用户输入字符,我现在可以提示他输入另一个输入。但是,当他输入Int时,循环仍然出现故障。它给出的输出与不提示用户输入另一个输入相同。@RUiHAO:我已更改了答案。请再试一次。我想你应该将下一行
更改为下一行
,因为senextLine
将首先读取剩余的换行符,然后在下一次迭代中读取无效的输入。这“浪费”一次交互。谢谢Jens。如果用户输入一个字符,我现在可以提示他输入另一个输入。但是,当他输入一个Int时,循环仍然出现故障。它给出了相同的输出,即不提示用户输入另一个输入。@RUiHAO:我已经更改了答案。请重试。我想你应该将nextLine
更改为next
,因为nextLine
将首先读取剩余的换行符,然后在下一次迭代中读取无效的输入。这“浪费”了一次迭代。他的代码示例中的keyboard
变量已经是扫描仪。他的代码示例中的keyboard
变量已经是扫描仪。“-1”不是有效的整数?这很遗憾:(.“-1”不是一个有效的整数吗?很遗憾:(。这对我来说很有效。我很困惑。在其他代码中,当我在上一个正确的输入之后输入错误的输入时,我会遇到输入不匹配异常(在正确的输入之后输入错误的输入)