3D阵列无法正常工作

时间:2013-01-10 22:14:50

标签: java string methods multidimensional-array

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很新,你可以看到 这是为了游戏Hangman

2 个答案:

答案 0 :(得分:3)

不,它不会。您的开关不包含任何break;语句,因此在它满足第一个case计算结果为true之后,它将在此之后执行所有语句,直到切换结束,或直到您{{1 }或break;某事。

此外,致电:

return

是冗余的,因为从未使用过指定的值。

所以它应该是:

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

答案 1 :(得分:1)

你需要休息一下;在两种情况之间。它只是简单地完成每个案例,因为没有休息。好吧,如果它是1的情况,那么每一个案例,如果它是2,那么就是2&3;

所以3是唯一一个正确打破的人,因为它是最后一个你不需要的人。!