在具有switch case的java中循环退出?

时间:2015-10-28 15:47:15

标签: java

我有一个简单的问题,我在循环中编写了switch case,有5个案例。

我的程序应该一直保持工作,但是当我输入5时,程序应该退出。

这是我的代码:

Case     Order          Amount
1         1               50
1         2               20
1         3               25 
2         1               Result (35-50)=-15
.         .
3         1               Result (-15-45)

问题是当我使用4个案例中的一个时。例如,如果我输入1 ...程序保持打印(添加)无限...我想只使用一次案例然后再回到程序进入另一个案例或退出。

3 个答案:

答案 0 :(得分:4)

您需要在while循环中读取输入(SELECT id ,description FROM cakes WHERE id NOT IN( SELECT cakeId FROM cake_ingredients WHERE ingredientCode NOT LIKE 'E_%' ) )。否则int choice = input.nextInt();永远不会改变。

choice

答案 1 :(得分:0)

使用变量值作为触发器循环结束的两种替代方法。

就个人而言,我更喜欢方式风格而不是标签风格和变量风格。

// Using label
LOOP: for (;;) {
    switch (input.nextInt()) {
        case 1:
            System.out.println("Add");
            break; // exit switch, runs code after switch, then loops
        case 2:
            System.out.println("Add");
            continue LOOP; // loops immediately, skipping code after switch
        case 5:
            break LOOP; // exits loop, skipping code after switch
    }
    // Potential "code after switch" here
}

// Using return from method
private static void prompt() {
    for (;;) {
        switch (input.nextInt()) {
            case 1:
                System.out.println("Add");
                break;
            case 5:
                return; // we're done
        }
    }
}

答案 2 :(得分:0)

boolean run = true;
while(run)
{
  int choice = input.nextInt();
  switch(choice)
  {
    case 1 :
        System.out.println("Add");
        break;
    case 2 :
        System.out.println("Edit");
        break;
    case 3 :
        System.out.println("Delete");
        break;
    case 4 :
        System.out.println("Search");
        break;
    case 5 :
        run = false;
        break;
    default:
        System.out.println("Invalid Choice .. Try Again.");
  }
}