Java 遍历一维数组和二维数组

标签 java arrays loops

我有一个一维问题数组和一个二维答案数组。我正在尝试打印一个问题和该问题的多项选择答案,并获取用户输入,然后返回并获取第二个问题并从二维数组中打印多项选择答案。抱歉,如果令人困惑。 代码:

private String[] questions =
{"Favourite Sweet", "Favourite subject at Hogwarts", "Dream Vacation"};

private String [][] selection =

{{"1.Acid Pops","2.Sherbert Lemons","3.Bertie Bott's Every Flavour Beans",
"4.Cake","5.Hagrid's Rock Cakes","6.Chocolate Frogs","7.Ginger Newt",
"8.I hate sweets\n"},

{"1.Care of Magical Creatures","2.Charms","3.Defense Against the Dark Arts", 
"4.Divination","5.Herbology","6.History of Magic","7.Muggle 
Studies","8.Potions", "9.Study of Ancient Runes","10.Transfiguration\n"},

{"1.Anywhere with friends","2.Egypt","3.Hogwarts","4.Museum","5.India","6.Forest",
"7.Can't be bothered with a vacation\n"}

};

我想打印“最喜欢的糖果”,然后打印 1-8 个糖果,然后打印“霍格沃茨最喜欢的科目”,然后打印 1-10 个科目,然后“梦想假期”并打印 1-7 个假期。

我的代码是垃圾,但它是:

public void printQuestion(){


    for (rowQ = 0; rowQ <= questions.length; rowQ++){
        System.out.println(questions[rowQ]);
        for(int rowS = rowQ; rowS <= rowS; rowS++){
            for(int colS = rowS; colS <= selection[rowS].length; colS++){
            System.out.println(selection[rowS][colS]);

        }
    }
}

这就是我运行代码时发生的情况:

最喜欢的甜品

1.酸汽水

2.雪伯特柠檬

3.Bertie Bott's Every Flavor Beans

4.蛋糕

5.海格的岩石蛋糕

6.巧克力 Frog

7.姜蝾螈

8.我讨厌甜食

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 8

最佳答案

既然你说你的代码不好,我就有幸完全重写了它,它对我有用:

for (int i = 0 ; i < questions.length ; i++){
    System.out.println(questions[i]);
    for(int j = 0 ; j  < selection[i].length ; j++){
        System.out.println(selection[i][j]);
    }
}

这背后的想法是,对于每个问题,打印出选择数组中与问题数组具有相同索引的所有答案,直到该数组的末尾

关于Java 遍历一维数组和二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48968007/

相关文章:

java - 事件监听器和鼠标监听器

java - 如何处理 SQL 状态 [HY000];错误代码[1366];字符串值不正确?

php - 如何打印从 Php 中的函数返回的数组的所有元素?

javascript - 如何在 react 中保存多个复选框值

flex3 - flex 3 遍历对象值

r - 代码的并行版本需要更长的时间来运行

java - 为什么我总是收到 IOException?

java - G1 垃圾收集 - 重复的完整 GC - 这是否代表堆碎片/垃圾压缩问题?

ios - 在 Swift 中遍历多个数组

javascript - while循环如何在没有条件的情况下工作?