问题是:为什么在最后输入0时会显示如下这两句(见代码),谢谢老师!
代码如下:
package circus_troupe;
import java.util.Scanner;
public class Test {
// 菜单的方法
public void menu() {
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 watch() {
boolean flag=true;
while(flag) {
System.out.println("***** 是否继续观看(0/1) *****");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
switch(a) {
case 0:
System.out.println("******** 欢迎下次光临 ********");
break;
case 1:
performer();
default:
System.out.println("***输入的信息不正确,请重新输入***");
continue;
}
flag=false;
}
}
// 选择表演者的方法
public void performer() {
IACT iact=null;//声明接口对象
boolean flag=true;
while(flag) {
menu();//调用菜单方法
//输入数值
Scanner scsc=new Scanner(System.in);
int c=scsc.nextInt();
switch(c) {
case 1:
iact=new Bear("狗熊",1);
iact.act();
break;
case 2:
iact=new Lion("狮子",1,"棕色","雄性");
iact.act();
break;
case 3:
iact=new Monkey("猴子",1,"亚洲猴");
iact.act();
break;
case 4:
iact=new Parrot("鹦鹉",1,"亚洲鹦鹉");
iact.act();
break;
case 5:
iact=new Clown("小丑",3);
iact.act();
break;
default:
System.out.println("***请重新输入***\n");
continue;
}
flag=false;
watch();//调用watch()观看方法
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Test test=new Test();
test.performer();
}
}
运行结果如下:
********欢迎来到太阳马戏团********
********** 请选择表演者 **********
********** 1、棕熊 **********
********** 2、狮子 **********
********** 3、猴子 **********
********** 4、鹦鹉 **********
********** 5、小丑 **********
2
lion act
***** 是否继续观看(0/1) *****
1
********欢迎来到太阳马戏团********
********** 请选择表演者 **********
********** 1、棕熊 **********
********** 2、狮子 **********
********** 3、猴子 **********
********** 4、鹦鹉 **********
********** 5、小丑 **********
4
parrot act
***** 是否继续观看(0/1) *****
0
******** 欢迎下次光临 ********
***输入的信息不正确,请重新输入***
***** 是否继续观看(0/1) *****
问题是:为什么在最后输入0时会显示如下这两句“
***输入的信息不正确,请重新输入***
***** 是否继续观看(0/1) *****
”不知道哪里错了,请老师讲一下,谢谢!
正在回答
你要在case1下增加break,要养成好的习惯。但即使不加,也不应该出现你说的状态。System.out.println("***输入的信息不正确,请重新输入***");只有在switch(a) {中吗,别的地方有没有?是不是执行的别的地方代码呢?或者是不没有保存代码?
不管如何你在
增加一句,退出程序System.exit(0);保存代码再运行,肯定是要退出程序的。祝:学习愉快
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星