当输入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

修改后的代码如下:

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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