关于项目的问题请教
package com.imooc.Animals;
import java.util.Scanner;
public class AnimalTest {
public void display() {
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、小丑 ********* ");
}
public void pick() {
System.out.println("******** 是否继续观看(1继续/0退出程序) ********");
}
public static void main(String[] args) {
AnimalTest an=new AnimalTest();
Scanner sc=new Scanner(System.in);
int num;
int num1;
an.display();
System.out.println(" 请输入对应的数字进行操作:");
while(true) {
try {
num=sc.nextInt();
}catch(java.util.InputMismatchException e){
System.out.println("输入格式有误,请重新输入");
sc.next();
continue;
}
switch(num) {
case 1:
Bear bear=new Bear("Bill",1);
bear.act();
an.pick();
break;
case 2:
IAct act2=new Lion("lain",2,"灰色",'公');
act2.act();
an.pick();
break;
case 3:
IAct act3=new Monkey("Tom",2,"金丝猴");
act3.act();
an.pick();
break;
case 4:
IAct act4=new Parrot("Rose",1,"牡丹鹦鹉");
act4.act();
an.pick();
break;
case 5:
IAct act5=new Clown("kahle",5);
act5.act();
an.pick();
break;
}
try {
num1=sc.nextInt();
}catch(java.util.InputMismatchException e) {
System.out.println("输入格式有误,请重新输入");
sc.next();
continue;
}
if(num1==1) {
an.display();
System.out.println(" 请输入对应的数字进行操作:");
}if(num1==0){
break;
}
}
}
}
老师麻烦检查一下这个测试类:
问题一:运行没问题,是否继续观看(1/0),出入(1/0)以外的数字,如何捕捉异常?
问题二:是否继续观看(1/0),出入字母,可以正常捕捉异常,但是重新输入“1”,不是输出显示继续的内容,而是输出序号1熊的信息。
请问以上问题如何解决?
正在回答 回答被采纳积分+1
同学你好,关于continue,我在下面链接中回答了同学的问题哦~
http://class.imooc.com/course/qadetail/136045
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,同学可以参考以下链接中的代码帮助理解哦~
https://class.imooc.com/course/qadetail/121234
同时,也可以上传作业,老师会根据同学作业中出现的问题,回复同学一个完整的批复文档呢~
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,这里可以参考如下思路来写这段代码,例如:
boolean a= true;
while(a){
展示表演菜单
boolean b= true;
while(b){
1、让用户输入选择
2、判断并通过switch结构给actor赋值,如果是1-5之间的数字,赋值b=false,判断iact是否为null,如果不为null,调用act方法。否则,输出提示信息,并再次展示表演菜单。
}
boolean c= true
while(c){
1、提示用户是否继续
2、让用户输入选择
3、判断用户输入的数字,如果是0则return。如果是1 则c=flase。其他的内容则提示用户输入有误,只能是0或者1,使用continue跳出本次循环,重新接收数据!
}
}
因为在贴出代码中只对是否观看的内容进行了0和1的判断,所以单输入不是0和1的正整数时,程序就不会处理直接跳入到下一次的循环中,所以要在接收是否继续观看的内容中添加一些判断,当不是0和1时,要让用户重新输入!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星