Как добавить цикл while в операторе switch при использовании диалоговых окон? - PullRequest
0 голосов
/ 07 марта 2012

Здесь у меня возникает проблема, когда я использую цикл while в операторе switch с использованием диалоговых окон. Некоторые операторы недоступны и диалоговые окна не появились. Пожалуйста, помогите мне! А также может внести некоторые исправления в мой код.

Это простой код, который я сделал:

public static void main(String[] args)
{
    // prompt and read first number from user
    String no = JOptionPane.showInputDialog(null, "Enter the number");
    int num = Integer.parseInt(no);         //convert string to number

        switch (num)
        {
        //display result

            default: JOptionPane.showMessageDialog(null,"fail"); break;
            case 1: JOptionPane.showMessageDialog(null,"c=a+b"); break;
            case 2: JOptionPane.showMessageDialog(null,"c=a/b"); break;
            case 3: JOptionPane.showMessageDialog(null,"c=a*b"); break;
            case 4: JOptionPane.showMessageDialog(null,"c=a-b"); break;
        }
}

Ответы [ 3 ]

1 голос
/ 07 марта 2012

Случаи в switch/case оцениваются в порядке их размещения. default соответствует всем случаям. Поскольку у вас есть этот первый случай, и этот случай что-то делает, прежде чем вырваться из него, остальные случаи никогда не будут достигнуты. Попробуйте вместо этого:

case 1: JOptionPane.showMessageDialog(null,"c=a+b"); break;
case 2: JOptionPane.showMessageDialog(null,"c=a/b"); break;
case 3: JOptionPane.showMessageDialog(null,"c=a*b"); break;
case 4: JOptionPane.showMessageDialog(null,"c=a-b"); break;
default: JOptionPane.showMessageDialog(null,"fail"); break;

Ваш код нигде не показывает петлю while. Возможно, вы сможете обновить код, который вы пытались.

0 голосов
/ 12 марта 2012

Введите код еще раз:

    // prompt and read first number from user
    String no = JOptionPane.showInputDialog(null, "Enter the number");
    int num = Integer.parseInt(no);         //convert string to number

    while (num<=4)
    {
    if
        switch (num)
        {
        //display result

            case 1: JOptionPane.showMessageDialog(null,"c=a+b"); break;
            case 2: JOptionPane.showMessageDialog(null,"c=a/b"); break;
            case 3: JOptionPane.showMessageDialog(null,"c=a*b"); break;
            case 4: JOptionPane.showMessageDialog(null,"c=a-b"); break;
            default: JOptionPane.showMessageDialog(null,"fail"); continue;
        }
}// end method main

} // конечный класс abc

0 голосов
/ 07 марта 2012
switch (num)
{
    case 1:
    while(!your condition)
    {
      JOptionPane.showMessageDialog(null,"c=a+b");
    }
    break;
    case 2: JOptionPane.showMessageDialog(null,"c=a/b"); break;
    case 3: JOptionPane.showMessageDialog(null,"c=a*b"); break;
    case 4: JOptionPane.showMessageDialog(null,"c=a-b"); break;
    default: JOptionPane.showMessageDialog(null,"fail"); break;
}
...