java - 我的扫描仪功能崩溃而不是返回输入数字(java)
问题描述
我创建了一个要求用户输入数字的函数。该函数检查它是否是一个正整数以及它是否是一个整数,并且应该返回该数字。
如果用户输入一个正整数,程序每次都会崩溃。我是 Eclipse IDE 的新手,不知道在哪里查找运行时错误日志。
我已经尝试过 return height.nextInt() 并删除了 z 变量,但没有用。(此功能适用于最终打印出金字塔的更大程序。)
package skener;
import java.util.Scanner;
public class MyClass
{
public static int z = 0;
public static int userInput()
{
Scanner height = new Scanner(System.in);
System.out.println("Please choose a number: ");
while(!height.hasNextInt() || (height.nextInt() < 0))
{
//height = new Scanner(System.in);
System.out.println("Wrong number, try again: ");
height = new Scanner(System.in);
}
z = height.nextInt();
height.close();
return z;
}
public static void main(String[] args)
{
System.out.println(userInput());
}
}
如果用户输入是 3,我希望得到返回 3,以便在另一个程序中使用。相反,程序只是终止,终端不提供任何错误消息,也不返回输入。
解决方案
你的程序应该如下所示,
Scanner height = new Scanner(System.in);
System.out.println("Please choose a number: ");
z = height.nextInt();
while((z < 0))
{
System.out.println("Wrong number, try again: ");
z = height.nextInt();
}
return z;
在这里,我们在 z 中获取整数值,我们正在检查条件并返回它是否为正,否则我们将要求用户再次输入。请在 import java.util.Scanner 中使用 import scanner 模块;