2

Java アプリの switch ステートメントの最後のケースは、常にヒットします。どうすればこれを適切に機能させることができますか?

public void onClick(View v) {       
    Random r = new Random();
    int x=r.nextInt(4-1) + 1;
    switch (x)
    {
    case 1:
        setContentView(R.layout.image1);
    case 2:
        setContentView(R.layout.image2);
    case 3:
        setContentView(R.layout.image3);
    case 4:
        setContentView(R.layout.image4);
4

3 に答える 3

11

case ステートメントは、break ステートメントがなければほとんどの言語で「失敗」します。各ケースに 1 つ追加するだけです。このような:

case 1:
    setContentView(R.layout.image1);
    break;
case 2:
    setContentView(R.layout.image2);
    break;
case 3:
    setContentView(R.layout.image3);
    break;
case 4:
    setContentView(R.layout.image4);
    break;
于 2012-07-04T22:10:45.847 に答える
5

あなたはあなたのケースステートメントを通り抜けています。する必要がありbreakます。

switch (x)
{
  case 1:
    setContentView(R.layout.image1);
    break;
  case 2:
    setContentView(R.layout.image2);
    break;
  case 3:
    setContentView(R.layout.image3);
    break;
  case 4:
    setContentView(R.layout.image4);
    break;
}

このチュートリアルを見てください。

于 2012-07-04T22:09:00.043 に答える
1

持ってbreak;いるすべての switch ステートメントが必要です。ステートメントを中断しないと、次のケースがヒットします (したがって、最後のケースまでブレークが発生します)。

    case 1:
        setContentView(R.layout.image1);
        break;
    case 2:
        setContentView(R.layout.image2);
        break;
    case 3:
        setContentView(R.layout.image3);
        break;
    case 4:
        setContentView(R.layout.image4);
        break;
    default:
        //Anything you want;
    break;

そして...デフォルトのケースを使用することは良いプログラミングの実践です(どのケースもヒットしない場合に使用されます)

于 2012-07-04T22:53:31.807 に答える