java中如何实现用户输入错误,从新输入

就拿这个例子来说吧。
import java.io.IOException;
import java.util.Scanner;

public class Test {

public static int a=0;

public static void main(String[] args)
{

while(true)
{
try
{
Scanner input = new Scanner(System.in);
a=input.nextInt();
return;
}
//这个地方怎么实现IO异常
catch(Exception e)
{
System.out.println("erro is a,请从新输入:");
}

}
//在while后面的语句怎么都会报错?
System.out.print(a);
Test.prints();
a=a+0;
}
public static void prints()
{
System.out.println(a);
}

}
我问的是while后面的语句为什么会报错,怎么实现IO异常,也就是说把Exception变成IOException、、就这两个问题

//报错的代码是不可达代码,将return修改为break即可,如:

while(true)

{

try

{

Scanner input = new Scanner(System.in);

a=input.nextInt();

break;

}catch(Exception e)

{

System.out.println("erro is a,请重新输入:");

}

}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-30
Java有一个Scaner类,你可以看看。这个类就是用于从控制台获取用户输入参数的。非常方便。
第2个回答  2011-05-13
结果会映出错误的字样 然后要求用户从新输入 ConsoleIO里面有以下: String x 为了让程序更有结构化,JAVA不支持GOTO语句,所以不能实现VB的On error goto
第3个回答  2011-05-13
你要捕获IOException吗?
catch(IOException e) 这样就可以了
但是这个程序没有会产生IOException的语句
非要捕获的话自己throw一个
try
{
Scanner input = new Scanner(System.in);
a=input.nextInt();
throw new IOException();
return;
}
//这个地方怎么实现IO异常
catch(IOException e)
{
System.out.println("erro is a,请从新输入:");
}
while语句报错是因为你上面已经return了,下面的代码执行不到
Scanner input = new Scanner(System.in);
a=input.nextInt();
return; //你这里直接return了
可以设个标志boolean flag=true;
while(flag){
flag=false;//然后在while循环里设成false,退出循环
}追问

while语句没错,是while后面的会报错,我输的那三条语句都会报错。。但是又没错误提示。。。

第4个回答  2011-05-13
public class Test {

public static int a=0;

public static void main(String[] args)
{

while(true)
{
try
{
Scanner input = new Scanner(System.in);
a=input.nextInt();
if(-1==a){
throw new IOException("请输入大于-1的数");
}else{
return;
}
}
//这个地方怎么实现IO异常
catch(IOException e)
{
System.out.println("erro is a,请从新输入:");
}

}
//在while后面的语句怎么都会报错?
System.out.print(a);
Test.prints();
a=a+0;
}
public static void prints()
{
System.out.println(a);
}

}追问

异常都不是关键,关键是这里会报错
//在while后面的语句怎么都会报错?
System.out.print(a);
Test.prints();
a=a+0;

追答

你要说报什么错我才知道

追问

no suggestionsav ailable

追答

不可到达语句

import java.io.IOException;
import java.util.Scanner;

public class Test {

public static int a = 0;

public static void main(String[] args) {

boolean b = true;
while (b) {
try {
Scanner input = new Scanner(System.in);
a = input.nextInt();
if (-1 == a) {
throw new IOException("请输入大于-1的数");
} else {
b = false;
}
} //这个地方怎么实现IO异常
catch (IOException e) {
System.out.println("erro is a,请从新输入:");
}

}
//在while后面的语句怎么都会报错?
System.out.print(a);
Test.prints();
a = a + 0;
}

public static void prints() {
System.out.println(a);
}
}

改成这样的

追问

怎么还是不能实现输入错误,再次输入。。。我加分!你搞定

追答

import java.io.IOException;
import java.util.Scanner;

public class Test {

public static int a = 0;

public static void main(String[] args) {

boolean b = true;
while (b) {
try {
Scanner input = new Scanner(System.in);
a = input.nextInt();
if (5 > a) {
throw new IOException(a + "<5");
} else {
b = false;
}
} catch (IOException e) { //这个地方怎么实现IO异常
System.out.println(e.getMessage());
}

}
System.out.println(a);
Test.prints();
a = a + 0;
}

public static void prints() {
System.out.println(a);
}
}

你输入比5小的就可以报错了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网