想做输入的学号不是INT型出现异常时 返回继续输入学号密码 结果运行出现死循环
在这个程序上怎么改
程序比较乱本小白初学JAVA悲催啊 Scanner stdin = new Scanner(System.in);
int a=0;
do{
try{
System.out.println("输入学号");
int num=stdin.nextInt();
}catch(Exception e){
System.out.println("学号密码应为数字");
b=1;}
}while(b==1);
在这个程序上怎么改
程序比较乱本小白初学JAVA悲催啊 Scanner stdin = new Scanner(System.in);
int a=0;
do{
try{
System.out.println("输入学号");
int num=stdin.nextInt();
}catch(Exception e){
System.out.println("学号密码应为数字");
b=1;}
}while(b==1);
就这个 本人小白写的比较乱
用了两个do while不知道该不该这么写public class Test
{
public static void main(String[] args)
{
Scanner stdin = new Scanner(System.in);
int a=0;
int b=0;
do
{
try
{
do
{
System.out.println("输入学号");
int num=stdin.nextInt();
if (num==20120208)
{
System.out.println("输入密码");
int stukey=stdin.nextInt();
if(stukey==20120208)
{
System.out.println("登陆成功!");
a=0;
}
else
{
System.out.println("密码错误");
}
}
else
{
System.out.println("学号错误");
a=1;
}
}while(a==1);
}catch(Exception e){
System.out.println("学号密码应为数字");
b=1;
}
}while(b==1);
}
}
Scanner stdin = new Scanner(System.in);
int a=0;
do{
try{
System.out.println("输入学号");
int num=stdin.nextInt();
b = 2;\\look here baby
}catch(Exception e){
System.out.println("学号密码应为数字");
b=1;}
}while(b==1);
出现异常的是上面那句,如果有异常程序不会执行异常后面的语句,因而不改变b。
若没有异常则改变b,从而退出循环。
我知道这么改有点投机取巧了,希望高手指点一二。
public class Bench {
public static void main(final java.lang.String[] args) {
Scanner stdin = new Scanner(System.in);
boolean flag = true;
while (flag) {
int a = 0;
try {
System.out.println("输入学号");
int num = stdin.nextInt();
} catch (Exception e){
System.out.println("学号密码应为数字");
stdin.nextLine();
continue;
}
flag = false;
}
}
}
int a=0;
do{
try{
System.out.println("输入学号");
int num=stdin.nextInt();
b=0;//重置玄幻变量
}catch(Exception e){
System.out.println("学号密码应为数字");
b=1;}
}while(b==1);
看看这个说的很清楚