老师您好,请问如何做到在输入错误的数字时,重新输入,而不是继续循环
来源:7-1 总结
CodeMz
2019-11-08 18:00:48
public class Test {
public static void main(String[] args) {
Test test=new Test();
Bear bear=new Bear("Bill",1);
Lion lion=new Lion("Lian",2,"灰色","公狮");
Monkey monkey=new Monkey("Tom",1,"金丝猴");
Parrot parrot=new Parrot("Rose",1,"牡丹鹦鹉");
Clown clown=new Clown("Khale",5);
Scanner sc=new Scanner(System.in);
int input=0;
int input1=0;
while(true) {
test.displayMenu();
try {
input=sc.nextInt();
} catch (Exception e) {
System.out.println("请输入有效数字!");
sc.next();
continue;
}
switch(input) {
case 1:bear.act();break;
case 2:lion.act();break;
case 3:monkey.act();break;
case 4:parrot.act();break;
case 5:clown.act();break;
}
System.out.println("*****是否继续观看(1/0)*****");
try {
input1=sc.nextInt();
} catch (Exception e) {
System.out.println("请输入有效数字!");
sc.next();
continue;
}
if(input1==0) {
break;
}else if(input1==1) {
continue;
}else {
System.out.println("请输入1/0");
input1=sc.nextInt();
}
}
}比如“是否继续观看(1/0)”提示后如果输入非数字,如何重新输入
2回答
同学你好,可以参考如下思路:
提示是否观看表演,当输入0或1以外的数字时,应该一直输入,直到正确为止,思路如下:
定义一个boolean值,初始值为true
使用while循环,当boolean值为true时,执行如下操作:
1)输出提示信息是否继续观看,接收从键盘输入的数据。
2)switch结构,当输入数据为1时,boolean值设置为false
当输入为0时,提示欢迎下次光临,并调用System.exit(0)退出程序
当输入0/1以外的值时,提示输入不正确,重新输入
修改后的代码如下:
public class Test {
public void displayMenu() {
System.out.println("**********欢迎来到辉夜大小姐的马戏团************");
System.out.println("************ 请选择表演者 *********");
System.out.println("************ 1、棕熊 ******************");
System.out.println("************ 2、狮子 ******************");
System.out.println("************ 3、猴子 ******************");
System.out.println("************ 4、鹦鹉 ******************");
System.out.println("************ 5、小丑 ******************");
System.out.println();
}
public static void main(String[] args) {
Test test = new Test();
Scanner sc = new Scanner(System.in);
int input;
int index = 0;
System.out.println("请输入数字 1 至 5 选择表演者!");
while (true) {
test.displayMenu();
try {
input = sc.nextInt();
} catch (java.util.InputMismatchException e) {
System.out.println("输入数据格式有误,不能有非数字!");
sc.next();
continue;
}
// Boolean(input>=1) {
switch (input) {
case 1:
IAct one = new Bear("Bill", 1);
one.act();
break;
case 2:
IAct two = new Lion("Lain", 2, "公狮", "灰色");
two.act();
break;
case 3:
IAct three = new Monkey("Tom", 1, "金丝猴");
three.act();
break;
case 4:
IAct five = new Parrot("Rose", 1, "牡丹鹦鹉");
five.act();
break;
case 5:
IAct four = new Clown("Kahle", 5);
four.act();
break;
default:
System.out.println("输入的数字有误,请重新输入!");
continue;
}
while (true) {
System.out.println();
System.out.println("***** 是否继续观看 (1/0) *****");
try {
input = sc.nextInt();
} catch (java.util.InputMismatchException e) {
System.out.println("输入数据格式有误,不能有非数字!");
sc.next();
continue;
}
// 提醒是否继续观看表演
boolean nextFlag = true;
while (nextFlag) {
System.out.println("****** 是否继续观看(1/0) ******");
index = sc.nextInt();
switch (index) {
case 1:
nextFlag = false;
break;
case 0:
System.out.println("******* 欢迎下次光临 *******");
return;
default:
System.out.println("** 输入信息不正确,请重新输入 **");
break;
}
}
}
}
}
}关于作业其他小问题,建议同学将作业上交,我们的老师会进行详细的批复哦~
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
ByteDancer07
2020-01-05
boolean flag = true;
while (flag){
System.out.println("******\t是否继续观看(1/0)******");
input = sc.nextInt();
switch (input){
case 1:
flag = false;
break;
case 0:
System.out.println("******\t欢迎下次光临!\t******");
return;
default:
System.out.println("您输入的数字有误,继续观看请输入1,退出请输入0。");
break;
}
}相似问题
回答 2
回答 4