繁体   English   中英

3D阵列不起作用

[英]3D Arrays not working

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数组的方法,我想知道我是否做对了,如果我在main方法中调用它,它将起作用吗? 我使用了switch语句,因为有人向我推荐了它,我对Java真的很陌生,因为您可以看到这是针对Hangman游戏的

不,不会。 您的开关没有任何break; 语句,因此在遇到第一个case为true的情况后,它将执行此后的所有语句,直到切换结束或您break;为止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;
}

你需要休息一下; 在两种情况之间。 因为没有间断,它只会简单地经历所有情况。 好吧,每一种情况都是1,2&3是2,只有3。

所以3是唯一可以正确破解的,因为既然是最后一个,您就不需要一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM