选择大小写时如何突破循环

时间:2014-10-30 03:56:24

标签: java while-loop switch-statement case

我有一个有4个案例的代码,我试图打破循环,如果' f'案例被选中。然后从那种情况中选择。当我尝试使用超过30个错误的if语句时,但当我把它拿走时代码很好。

String one = "";
boolean yea = true;   
Scanner sw = new Scanner(System.in);
while (yea == true)
{
    System.out.print(MENU);
    one  = sw.next();
    char choice  = one.charAt(0);
    switch(choice)
    {
        case 'f':
            friendsList();
            break; 
        case 'w':
            wall();
            break;
        case 'p':
            network();
            break;

        case 'q' : 
            yea = false;
            break; 
        default:
            System.out.println("Error: You have entered " + choice + 
            ". Please try again");

    }
}
if (case == 'f')
    {
    break;
    }
}

5 个答案:

答案 0 :(得分:1)

您可以使用Java label(请参阅此代码示例BreakWithLabelDemo.java)将您的代码告诉break

myloop:
    while ( true ){
        switch( choice ){
            case 'f':
                friendsList();
                break myloop;
        }
    }

答案 1 :(得分:1)

对于您的实现,在进入switch语句之前打破特定情况是有意义的。例如:

char choice  = one.charAt(0);

if (choice == 'f') break;

switch(choice)

这似乎是退出while循环的一种非常简单的方法,而不会与switch语句的break语句冲突。

或者,如果您仍然需要在choice'f'时调用friendsList方法,则可以将该if语句移到switch语句之后。

注意:有了这个,您还应该删除代码示例底部的if语句。

答案 2 :(得分:0)

if (case == 'f')

本声明中的情况如何?您应该选择替换它。

if (choice == 'f')

答案 3 :(得分:0)

你需要把if放在while循环中。

    String one = "";
    boolean yea = true;   
    Scanner sw = new Scanner(System.in);
    while (yea == true)
    {
        System.out.print(MENU);
        one  = sw.next();
        char choice  = one.charAt(0);
        switch(choice)
        {
            case 'f':
                friendsList();
                break;
            case 'w':
                wall();
                break;
            case 'p':
                network();
                break;

            case 'q' : 
                yea = false;
                break; 
            default:
                System.out.println("Error: You have entered " + choice + 
                ". Please try again");

        }
        if (choice == 'f')
        {
        break;
        }

    }

答案 4 :(得分:0)

if语句应该在while循环内移动才有效,if语句中的case应该改为选择。

所以

  While(yea==true)
  {
        System.out.print(MENU);
        one  = sw.next();
        char choice  = one.charAt(0);

        if(choice == 'F')
        {
              break;
        }
        switch(choice)
        {
          //cases          
        }
}