从数组中获取索引并用java输出

从数组中获取索引并用java输出,java,multidimensional-array,user-input,bufferedreader,Java,Multidimensional Array,User Input,Bufferedreader,我希望能够使用输入选择数组索引 Object stud1 [][] = { {1,2,3}, {"favorite food: ","pet name: ","bday: "} } System.out.println("how many inputs?"); 如果用户输入1,则favorite food:将提示用户,如果用户输入2,则 最喜欢的食物:和宠物名称:都会提示用户等等 用户完成提示输入后,将显示: favorite

我希望能够使用输入选择数组索引

Object stud1 [][] = {
          {1,2,3},
          {"favorite food: ","pet name: ","bday: "}
          }

System.out.println("how many inputs?");
如果用户输入1,则favorite food:将提示用户,如果用户输入2,则 最喜欢的食物:和宠物名称:都会提示用户等等

用户完成提示输入后,将显示:

  favorite food: chicken
  pet: doge
  birthday: december 25,1994
/////////////////////////////////////////我的代码/////////////////////////////////////////////

这个问题与我的另一个问题类似,我只是找不到我问题的正确答案,因为我觉得它很混乱,不够具体

它已经开始工作了,但问题是当我输入1时,它仍然输出所有内容。我只希望它在用户输入3(数组中的索引数)时输出所有内容

我还不太擅长阵列,尤其是多阵列,我还在试验中

 String ctr1;

 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


 System.out.print("Enter How Many Inputs: ");
    int num1 = Integer.parseInt(in.readLine());
    if (num1 <= stud1.length) {
        for (int x = 1; x<stud1.length;x++){
            for (int i = 0; i<stud1[x].length;){
                /*System.out.print("Enter Value #" + x++ +":");
                 ctr1 =Integer.parseInt(in.readLine());
                i++;*/

                System.out.println(stud1[x][i]);
                ctr1 =in.readLine();
                i++;
            }

        }

很抱歉,但我认为这不是多维数组的好例子。。。这里的第一个元素:{1,2,3}实际上没有做任何事情

为了回答当用户只输入1时为什么所有3个元素都打印出来的具体问题,这是因为该值被读入变量num1,但num1在打印输出的循环中没有使用。如果希望输入控制打印多少个值,则需要在for循环的测试表达式中使用num1,即括号中的中间短语。我认为一个好的第一步是改变你的内部循环如下:

for (int i = 0; i<num1;i++){
     System.out.println(stud1[1][i]);
     ctr1 =in.readLine();
}
还要注意,i++被移动到for循环的括号内。这才是它真正的归属,如果你用它的话


希望这有帮助

什么是stud1?您从未声明stud1,也从未在double for循环中修改stud1。