问题是:为什么在最后输入0时会显示如下这两句(见代码),谢谢老师!

问题是:为什么在最后输入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)   *****

”不知道哪里错了,请老师讲一下,谢谢!

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你要在case1下增加break,要养成好的习惯。但即使不加,也不应该出现你说的状态。System.out.println("***输入的信息不正确,请重新输入***");只有在switch(a) {中吗,别的地方有没有?是不是执行的别的地方代码呢?或者是不没有保存代码?

不管如何你在

http://img1.sycdn.imooc.com//climg/5c7632b2000138ae05720273.jpg

增加一句,退出程序System.exit(0);保存代码再运行,肯定是要退出程序的。祝:学习愉快

  • Ceoking 提问者 #1
    为什么在case1 performer()下面写break 也可以解决呢?
    2019-02-27 15:02:54
  • 好帮手慕雪 回复 提问者 Ceoking #2
    你要在case1下增加break,要养成好的习惯。但即使不加,也不应该出现你说的状态。出现这样的状况,应该是你刚才修改完代码,并没有保存而导致的吧。
    2019-02-27 15:05:27
  • Ceoking 提问者 #3
    别地方没有的
    2019-02-27 15:06:07
提问者 Ceoking 2019-02-27 14:37:29

是不是在case1 performer()下没写break导致的,为什么会因没写而导致出错呢?谢谢!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师