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