当输入1和2时候,为什么会出现死循环,怎么改

当输入1和2时候,为什么会出现死循环,怎么改

import java.util.Scanner;
public class MenuPrint{
    public static void main(String[] args){
        //使用输出语句输出菜单
        System.out.println("==============");
        System.out.println("请输入数字");
          System.out.println("1--继续下一关");
            System.out.println("2-- 重玩");
              System.out.println("3--退出");
        System.out.println("==============");
     //从键盘输入数据,存储到整型变量中
        Scanner sc= new Scanner(System.in);
       // int d =sc.nextInt();
       
       
       
  //使用while循环,并在循环中判断输入的数据是0还是1,并给出提示
        while(true)
        {
            int d =sc.nextInt();
            if(d==1){
         System.out.println(" 下一关") ; 
        }
   
    else  if(d==2) {
         System.out.println("  重玩")  ;
         }
  
  //输出退出
  else if (d==3){
       System.out.println("  退出")  ;
       break;
     
  }
       
    }
}
}

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

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

2回答
好帮手慕酷酷 2019-10-06 13:03:57

同学你好,代码完成的不错,同学的代码当输入1和2时,并没有出现死循环哦~而是在等待下一次的输入操作,

建议根据题目要求,在循环最后要再显示菜单并继续输入数字,使界面更加美观,具体如下:

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

修改后的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Scanner;
 
public class MenuPrint {
    public static void main(String[] args) {
        // 使用输出语句输出菜单
        System.out.println("==============");
        System.out.println("请输入数字");
        System.out.println("1--继续下一关");
        System.out.println("2-- 重玩");
        System.out.println("3--退出");
        System.out.println("==============");
        // 从键盘输入数据,存储到整型变量中
        Scanner sc = new Scanner(System.in);
        // int d =sc.nextInt();
 
        // 使用while循环,并在循环中判断输入的数据是0还是1,并给出提示
        while (true) {
            int d = sc.nextInt();
            if (d == 1) {
                System.out.println(" 下一关");
            }
 
            else if (d == 2) {
                System.out.println("  重玩");
            }
 
            // 输出退出
            else if (d == 3) {
                System.out.println("  退出");
                break;
 
            }
        System.out.println("==================");
            System.out.println("输入数字,选择要执行的操作");
            System.out.println("1--继续下一关" );
            System.out.println( "2--重玩");
            System.out.println("3--退出");
            System.out.println("==================");
 
        }
    }
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

52066 2019-10-02 17:40:36

http://img1.sycdn.imooc.com//climg/5d946fe209bc307002860322.jpg根据你的代码执行结果,和读代码来说你得循环就是只有当输入3的时候才会退出循环,输入1和2会继续循环等待你得下次输入,而且如果输入其他的数字或字符,程序将继续等待

  • 52066 #1
    你如果不想让程序等待的话,就再加一个else,里面就输出,指令错误程序退出+break,如果输入1和2你也要退出程序的话你也加上break
    2019-10-02 18:52:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
零基础Java入门体验课
  • 参与学习           人
  • 提交作业       437    份
  • 解答问题       393    个

慕课网首推Java体验课,用体系化的学习方式+实战性的项目练习,带你轻松入门Java~

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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