java中scanner的nextInt()的问题
例如,intnum=0;Scannerinput=newScanner(System.in);System.out.print("Num:");num=input.nex...
例如,
int num = 0;
Scanner input = new Scanner(System.in);
System.out.print("Num: ");
num = input.nextInt();
这个时候如果输入了非整数(Double,Float,String,Char等)的话,程序会跳出并报错。
有什么方法可以不跳出?例如:
int num = 0;
Scanner input = new Scanner(System.in);
do
{
System.out.print("Num: ");
price = input.nextInt();
if (num < 0)
{
System.out.println("Error")
}
}while (num < 0);
这样的话,如果输入的数字小于0了,那么就会让用户重新输入数字,
但是用户如果输入的是非整数的话,由于nextInt的限制,会跳出并报错,
我希望此时如果用户输入了非数字的话,system.out.print告知用户输入错误,程序不跳出仍然运行,同时用条件循环让用户重新输入num,直到输入的是一个正整数。
我知道可以让用户输入String,之后再转换为Int,但是这样的话如何判断用户输入的不是个整数?当然if( !num.equals("a") || !num.equals("b") || ...)是可以的,但很弱智,要打多少个equals(“什么”)啊……
所以……望有人解答下。如果能用比较简单的方法最好。
array没学,本人目前接触了不多,有scanner的,while,for之类的,没有特别深奥的了。
谢谢 展开
int num = 0;
Scanner input = new Scanner(System.in);
System.out.print("Num: ");
num = input.nextInt();
这个时候如果输入了非整数(Double,Float,String,Char等)的话,程序会跳出并报错。
有什么方法可以不跳出?例如:
int num = 0;
Scanner input = new Scanner(System.in);
do
{
System.out.print("Num: ");
price = input.nextInt();
if (num < 0)
{
System.out.println("Error")
}
}while (num < 0);
这样的话,如果输入的数字小于0了,那么就会让用户重新输入数字,
但是用户如果输入的是非整数的话,由于nextInt的限制,会跳出并报错,
我希望此时如果用户输入了非数字的话,system.out.print告知用户输入错误,程序不跳出仍然运行,同时用条件循环让用户重新输入num,直到输入的是一个正整数。
我知道可以让用户输入String,之后再转换为Int,但是这样的话如何判断用户输入的不是个整数?当然if( !num.equals("a") || !num.equals("b") || ...)是可以的,但很弱智,要打多少个equals(“什么”)啊……
所以……望有人解答下。如果能用比较简单的方法最好。
array没学,本人目前接触了不多,有scanner的,while,for之类的,没有特别深奥的了。
谢谢 展开
4个回答
展开全部
用try-catch捕捉错误,catch后面大括号是出错后你要干的事(出错后执行里面代码),不会的查看书本的"异常"那章,我不会从异常中返回,也许根本没办法返回,这个问题还要等待高手回答,所以我只能直接关闭程序,当然如果你有好的办法可以放到catch里面去
代码如下:
public static void main(String[] args) {
try{
int num = 0;
Scanner input = new Scanner(System.in);
System.out.print("Num: ");
num = input.nextInt();
} catch (InputMismatchException e){
System.out.print("对不起输入错误,请重试");//出错提示
System.exit(-1);//不知道怎么返回出错的那行只能终止程序
}
}
代码如下:
public static void main(String[] args) {
try{
int num = 0;
Scanner input = new Scanner(System.in);
System.out.print("Num: ");
num = input.nextInt();
} catch (InputMismatchException e){
System.out.print("对不起输入错误,请重试");//出错提示
System.exit(-1);//不知道怎么返回出错的那行只能终止程序
}
}
展开全部
你先前的程序应该有这么一条
scanner
scanner=new
scanner(system.in);
当程序进行到这里的会要求你从键盘输入什么东西
如果你输入和一个整形的数字
比如
150
int
s=scanner.nextint();
这个时候s的值就是150
scanner
scanner=new
scanner(system.in);
当程序进行到这里的会要求你从键盘输入什么东西
如果你输入和一个整形的数字
比如
150
int
s=scanner.nextint();
这个时候s的值就是150
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先前的程序应该有这么一条
scanner
scanner=new
scanner(system.in);
当程序进行到这里的会要求你从键盘输入什么东西
如果你输入和一个整形的数字
比如
150
int
s=scanner.nextint();
这个时候s的值就是150
scanner
scanner=new
scanner(system.in);
当程序进行到这里的会要求你从键盘输入什么东西
如果你输入和一个整形的数字
比如
150
int
s=scanner.nextint();
这个时候s的值就是150
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
让它跳出异常啊??输入异常不就行了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询