关于***** 是否继续观看(1/0) *****问题

关于***** 是否继续观看(1/0) *****问题

while(true) {

System.out.println("***** 是否继续观看(1/0) *****");

  try {

    a=sc.nextInt();

    }catch(InputMismatchException e) {

    System.out.println("输入数据格式有误,不能有非数字!");

    sc.next();

    continue;

    }

  if(a==0) {

  System.out.println("*******欢迎下次光临*******");

    return;


  }else if(a==1) {

  break;

  }else  {

  System.out.println("*******输入数据格式有误,请输入1或0*******");

    a=sc.nextInt();

     

}continue;


}

老师这是我写的代码,有个问题见下:

********欢迎来到太阳马戏团********

**********请选择表演者**********

**********   1、棕熊   **********

**********   2、狮子   **********

**********   3、猴子   **********

**********   4、鹦鹉   **********

**********   5、小丑   **********

1

表演者:Bill

年龄:1岁

技能:挽着花篮,打着雨伞,自立走秀

爱好:喜欢卖萌

***** 是否继续观看(1/0) *****

a

输入数据格式有误,不能有非数字!

***** 是否继续观看(1/0) *****

9

*******输入数据格式有误,请输入1或0*******

1

***** 是否继续观看(1/0) *****


在我输入9的时候,提示有误,让我输出1或0,但是我如果1之后没有输出菜单,而出现

***** 是否继续观看(1/0) ***** 这个信息,然后输入1才能出菜单。 我试着改了很多次都不行,老师能否帮我改下?讲讲?


正在回答 回答被采纳积分+1

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

1回答
好帮手慕阿慧 2021-01-04 18:23:27

同学你好,当输入9时,在else语句中有a=sc.nextInt();,同学并没有对a进行判断,这是程序会从while的开始处执行,再要求输入数据。

如下:

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

是否继续观看应该在while循环开始的时候输入选项,所以应该将else中的sc.nextInt()去掉。另外,continue;在while循环最后,并没有起到作用,建议同学去掉。

参考代码如下:

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

祝学习愉快

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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