0
public static String[] getWords(int cat, int diff) {
    String topic[][][] = new String[3][3][3];
    switch(cat){
        case 0:
            topic[0][0][0] = "Paris";
            topic[0][0][1] = "London";
            topic[0][0][2] = "Sydney";
            diff = 0;
            topic[0][1][0] = "Toronto";
            topic[0][1][1] = "Florida";
            topic[0][1][2] = "Frankfurt";
            diff = 1;
            topic[0][2][0] = "Barcelona";
            topic[0][2][1] = "Vancouver";
            topic[0][2][2] = "Zimbabwe";
            diff = 2;
        case 1:
            topic[1][0][0] = "Halo";  
            topic[1][0][1] = "Fifa";                   
            topic[1][0][2] = "GTA";
            diff = 0;                  
            topic[1][1][0] = "Skyrim";
            topic[1][1][1] = "HITMAN";
            topic[1][1][2] = "Batman";
            diff =1;
            topic[1][2][0] = "Minecraft";
            topic[1][2][1] = "Zombieville";
            topic[1][2][2] = "BoderLands";
            diff =2;
        case 2:
            topic[2][0][0] = "Acura";
            topic[2][0][1] = "Audi";
            topic[2][0][2] = "Bmw";
            diff = 0;
            topic[2][1][0] = "Bentley";
            topic[2][1][1] = "Buggati";
            topic[2][1][2] = "Honda";
            diff = 1;
            topic[2][2][0] = "Lamborghini";
            topic[2][2][1] = "Rolls-Royce";
            topic[2][2][2] = "Mercedes";
            diff = 2;
    }
    return topic[cat][diff];
}

したがって、これは3D配列を使用した私のメソッドであり、私がそれを正しく行ったかどうかを知りたいのですが、メインメソッドでそれを呼び出すと機能しますか?? 誰かが私にそれを勧めたので、私はswitchステートメントを使用しました.私は本当にjavaに慣れていません.これはハングマンゲーム用です.

4

2 に答える 2

3

いいえ、そうはなりません。スイッチにはステートメントが含まれていないbreak;ため、最初にtrueと評価された後、スイッチの終わりまで、またはあなたまたは何かcaseまで、その後のすべてのステートメントを実行します。break;return

さらに、以下への呼び出し:

diff = 0;
// ...
diff = 1;
// ...
diff = 2;

割り当てられた値は使用されないため、冗長です。

したがって、次のようになります。

switch(cat)
{
    case 0:
        topic[0][0][0] = "Paris";
        topic[0][0][1] = "London";
        topic[0][0][2] = "Sydney";

        topic[0][1][0] = "Toronto";
        topic[0][1][1] = "Florida";
        topic[0][1][2] = "Frankfurt";

        topic[0][2][0] = "Barcelona";
        topic[0][2][1] = "Vancouver";
        topic[0][2][2] = "Zimbabwe";
        break;
    case 1:
        topic[1][0][0] = "Halo";
        topic[1][0][1] = "Fifa";
        topic[1][0][2] = "GTA";

        topic[1][1][0] = "Skyrim";
        topic[1][1][1] = "HITMAN";
        topic[1][1][2] = "Batman";

        topic[1][2][0] = "Minecraft";
        topic[1][2][1] = "Zombieville";
        topic[1][2][2] = "BoderLands";
        break;
    case 2:
        topic[2][0][0] = "Acura";
        topic[2][0][1] = "Audi";
        topic[2][0][2] = "Bmw";

        topic[2][1][0] = "Bentley";
        topic[2][1][1] = "Buggati";
        topic[2][1][2] = "Honda";

        topic[2][2][0] = "Lamborghini";
        topic[2][2][1] = "Rolls-Royce";
        topic[2][2][2] = "Mercedes";
        break;
}
于 2013-01-10T22:20:54.907 に答える
1

休憩が必要です。ケースの間。休憩がないので、すべてのケースを単純に通過します。ケース 1 の場合はすべてのケース、ケース 2 の場合は 2&3、そして 3 だけです。

したがって、適切に壊れるのは 3 だけです。これが最後なので、必要ないからです。

于 2013-01-10T22:28:46.317 に答える