1

ユーザーが 7、8、または 9 匹の犬を入力した場合に、どのようなコードを作成する必要がありますか。ケース6でもメッセージを出力しますか?

int dogs;

dogs = Integer.parseInt(JOptionPane.showInputDialog("How many dogs do you have?"));

switch (dogs)
{
           ...
           ...
           ...
case 4: JOptionPane.showMessageDialog(null,"Four dogs is too many."); break;

case 5: JOptionPane.showMessageDialog(null,"Five dogs means you're a crazy person."); break;

case 6: JOptionPane.showMessageDialog(null,"That is totally unbelieveable.");

default: JOptionPane.showMessageDialog(null,"Invalid input.");

} // end switch
4

4 に答える 4

4

無効な番号を確認してから、次のdefault句を使用します。

if (dogs < 0) {
  JOptionPane.showMessageDialog(null,"Invalid input.");
} else {
  switch(dogs) {
    // ...
  case 5: 
    JOptionPane.showMessageDialog(null,"Five dogs means you're a crazy person.");
    break;
  default:
    JOptionPane.showMessageDialog(null,"That is totally unbelieveable.");
    break;
  }
}
于 2013-09-20T15:23:33.193 に答える
3

6 で 7、8、9 のケースを追加するだけです。

case 6: 
case 7:
case 8:
case 9:
JOptionPane.showMessageDialog(null,"That is totally unbelieveable."); 
break;
于 2013-09-20T15:23:45.493 に答える
3
case 6:
case 7:
case 8:
  JOptionPane.showMessageDialog(null,"That is totally unbelieveable.");
  break;

これは仕事をします。

ただし、次のように変更します。

case 4: JOptionPane.showMessageDialog(null,"Four dogs is too many."); break;
case 5: JOptionPane.showMessageDialog(null,"Five dogs means you're a crazy person."); break;
default:  JOptionPane.showMessageDialog(null,"That is totally unbelieveable.");break;

これにより、無効な出力メッセージがなくなりますが、5 を超えるすべての数値で機能しますが、dogs の値はInteger.parseInt()呼び出しから出てくるので、これは許容できると思います。コンテンツが無効な場合、そこに例外がスローされ、無効な入力メッセージが例外ハンドラー内に表示される可能性があります。同様に、dogs が負の場合は例外がスローされます。

これには、あらゆる数の犬に有効な利点があります。別のエラー メッセージを管理する必要がある場合は、特定のcaseブランチを追加するだけで十分です。

int dogs;

try {
     dogs = Integer.parseInt(JOptionPane.showInputDialog("How many dogs do you have?"));
     if (dogs < 0) {
         throw new Exception("Negative dog is impossible!");
     }
    switch (dogs)
    {
           ...
           ...
           ...
    case 4: JOptionPane.showMessageDialog(null,"Four dogs is too many."); break;

    case 5: JOptionPane.showMessageDialog(null,"Five dogs means you're a crazy person."); break;

    default: JOptionPane.showMessageDialog(null,"That is totally unbelieveable.");break;
    } 
} catch (Exception e) {
    JOptionPane.showMessageDialog(null,"Invalid input.");
} 
于 2013-09-20T15:23:24.507 に答える