首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Switch语句+用户输入

问Switch语句+用户输入
EN

Stack Overflow用户
提问于 2013-07-27 08:24:12
回答 3查看 10K关注 0票数 0

谢谢你抽出时间来帮助我。我需要这个switch语句来只接受整数1-4。任何其他输入的内容都将再次要求输入。输入5将退出系统。

代码语言:javascript
复制
     System.out.println("A random numbers list has been generated for you:\n ");

     System.out.println("Choose an option:\n1)Form list to be heapified.\n2)Enqueue the integer 10" +
        "\n3)Dequeue the integer 10.\n4)Print the updated heap.\n5)Quit the system \n>>"); 
     Scanner scanner = new Scanner( System.in );
     int var = 0;
     String input = scanner.next();
     int answer = Integer.parseInt(input);

     do{
        input = scanner.next();
        answer = Integer.parseInt(input);
        var = answer;

     switch(var){
        case 1:
           for (int i = 0; i < 20; i++) {
              h.insert(new Integer((int)(100 * Math.random())), i);
           }
           break;
        case 2:
           System.out.println("\nEnqueue-ing 10...\n");
                pushFoward(10, 20);//priority 20
           break;
        case 3:
        System.out.println("\nDequeue-ing 10...\n");
            dequeue;//priority highest deleted

           break;
        case 4:
           while (h.heapsize() > 0) {
              System.out.print(h.pop() + " ");
           } 
           break;
     } 
     }while(var ==1 || var==2 || var==3
     || var==4);

我似乎不能把它弄对。继续让事情变得更糟。

编辑:

代码语言:javascript
复制
 do{
    String input = scanner.next();
             int answer = Integer.parseInt(input);
     switch(var){
        case 1:
           for (int i = 0; i < 20; i++) {
              h.insert(new Integer((int)(100 * Math.random())), i);
           }
           break;
        case 2:
           System.out.println("\nEnqueue-ing 10...\n");
                h.pushFoward(10, 20);//priority 20
           break;
        case 3:
        System.out.println("\nDequeue-ing 10...\n");
            h.dequeue();//priority highest deleted

           break;
        case 4:
           while (h.heapsize() > 0) {
              System.out.print(h.pop() + " ");
           } 
           break;
           default: input = scanner.next();
            break;
     } 
     }while(var!=5)

;

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-27 08:34:41

您可以设置“默认”大小写。

代码语言:javascript
复制
default: doSomething();
                 break;

当用户输入一个不属于您的情况的值时,将调用此方法。

代码语言:javascript
复制
} while (answer != 5);

当输入5时,这应该会使循环中断。

编辑:

此外,您还需要打开answer变量而不是'var‘

代码语言:javascript
复制
switch(answer) {
票数 1
EN

Stack Overflow用户

发布于 2013-07-27 08:28:36

尝试添加"default:“语句,如下所示:

代码语言:javascript
复制
    switch(var){
    case 1:
       for (int i = 0; i < 20; i++) {
          h.insert(new Integer((int)(100 * Math.random())), i);
       }
       break;
    case 2:
       System.out.println("\nEnqueue-ing 10...\n");
            pushFoward(10, 20);//priority 20
       break;
    case 3:
    System.out.println("\nDequeue-ing 10...\n");
        dequeue;//priority highest deleted

       break;
    case 4:
       while (h.heapsize() > 0) {
          System.out.print(h.pop() + " ");
       } 
       break;
    default:
        *Add whatever code you want to execute if its greater then or equal to 5 here!*

 }while(var ==1 || var==2 || var==3
 || var==4);
票数 3
EN

Stack Overflow用户

发布于 2013-07-27 12:57:37

你不需要把它放在一个循环中。用例很简单:

  • For 1-4 :做点什么,然后返回
  • For 5: quit/return Everything
  • else:

公共静态空main(String[]参数){

扫描仪扫描仪=新扫描仪(System.in);int应答= Integer.parseInt(scanner.next());开关(应答){案例1: System.out.println(1);中断;案例2: System.out.println(2);中断;案例3: System.out.println(3);中断;案例4: System.out.println(4);中断;案例5:返回;// System.exit(0)或按您的意愿退出: answer = Integer.parseInt(scanner.next());}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17892985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档