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

来源:5-2 编程练习

weixin_慕容5018004

2019-10-02 15:59:46

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;
     
  }
       
    }
}
}

写回答

2回答

好帮手慕酷酷

2019-10-06

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

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

http://img.mukewang.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("==================");

		}
	}
}

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

1

52066

2019-10-02

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

0
h2066
h 你如果不想让程序等待的话,就再加一个else,里面就输出,指令错误程序退出+break,如果输入1和2你也要退出程序的话你也加上break
h019-10-02
共1条回复

0 学习 · 393 问题

查看课程