是否继续观看这个循环怎么写?
来源:7-2 作业题
慕桂英4001693
2019-04-07 14:37:46
package com.imooc.test;
import com.imooc.model.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Test dm = new Test();
int input;
while (true) {
dm.showMenu();
try {
input = sc.nextInt();
} catch (java.util.InputMismatchException e) {
System.out.println("输入信息有误,请重新输入");
sc.next();
continue;
}
// switch选择观看的表演
switch (input) {
case 1:
Bear a = new Bear();
a.setName("Bill");
a.setAge("1岁");
System.out.println("表演者:" + a.getName() + "\n" + "年龄:" + a.getAge() + "\n" + "技能:" + a.act() + "\n"
+ "爱好:" + a.love());
break;
case 2:
Lion b = new Lion();
b.setName("Lain");
b.setAge("2岁");
b.setSex("雄狮");
b.setColor("灰色");
System.out.println("表演者:" + b.getName() + "\n" + "年龄:" + b.getAge() + "\n" + "性别:" + b.getSex() + "\n"
+ "毛色:" + b.getColor() + "\n" + "技能:" + b.act() + "\n" + "爱好:" + b.love());
break;
case 3:
Monkey c = new Monkey();
c.setName("Tom");
c.setAge("1岁");
c.setType("金丝猴");
System.out.println("表演者:" + c.getName() + "\n" + "年龄:" + c.getAge() + "\n" + "品种:" + c.getType() + "\n"
+ "技能:" + c.act() + "\n" + "爱好:" + c.love());
break;
case 4:
Parrot d = new Parrot();
d.setName("Rose");
d.setAge("1岁");
d.setType("牡丹鹦鹉");
System.out.println("表演者:" + d.getName() + "\n" + "年龄:" + d.getAge() + "\n" + "品种:" + d.getType() + "\n"
+ "技能:" + d.act() + "\n" + "爱好:" + d.love());
break;
case 5:
Clown e = new Clown("Kahle", "5年");
System.out.println("表演者:" + e.getName() + "\n" + "年龄:" + e.getYears() + "\n" + "着装:" + e.dress() + "\n"
+ "技能:" + e.act());
break;
default:
System.out.println("输入信息有误,请重新输入");
continue;
}
// 判斷是否繼續觀看表演
System.out.println("******是否继续观看(1/0)******");
int i;
try {
i = sc.nextInt();
} catch (java.util.InputMismatchException e) {
System.out.println("输入信息有误,请重新输入");
sc.next();
continue;
}
if (i == 1) {
continue;
} else if (i == 0) {
System.out.println("******* 欢迎下次光临 ********");
break;
} else {
System.out.println("输入信息有误,请重新输入");
continue;
}
}
}
// 设置节目表显示方法;
public void showMenu() {
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("******是否继续观看(1/0)******");
int i;
try {
i = sc.nextInt();
} catch (java.util.InputMismatchException e) {
System.out.println("输入信息有误,请重新输入");
sc.next();
continue;
}
if (i == 1) {
continue;
} else if (i == 0) {
System.out.println("******* 欢迎下次光临 ********");
break;
} else {
System.out.println("输入信息有误,请重新输入");
continue;
}
运行之后如果输入不是1或0结果会直接进行下一次while循环
怎么跳回是否继续观看(1/0)这里?
2回答
同学你好,是否继续观看可以使用一个while循环,循环条件是(i!=1 & i!=0),在循环中重新输入,参考如下代码:

另外还有几个建议:
1、建议同学在实现类中定义带参构造方法,在测试类中使用带参构造方法定义对象。
2、在实现类类中的act()方法中输出表演着的信息,在测试类中直接调用act()方法输出信息即可。
3、测试类中,为体现多态,不建议直接定义实现类的对象,而是应该先声明一个接口的引用,如:IAct actor=null;然后在case 语句后面进行对象的创建,如case 1后的代码为:actor= new Bear("Bill", 1);最后act方法的调用写在switch结构的外面,即if(actor!=null){actor.act(); }
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
天天4244770
2019-04-08
加一个while循环,把判断语句写入try里面
如我单独写一个方法去判断。主方法里面调用。

相似问题
回答 1
回答 1