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

时间:2014-08-19 03:28:08

标签: java multidimensional-array user-input bufferedreader

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

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

System.out.println("how many inputs?");

如果用户输入1,那么"最喜欢的食物:"将提示用户,如果用户输入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 个答案:

答案 0 :(得分:0)

对不起,但我不认为这是多维数组的一个很好的例子......这里的第一个元素没有真正做到:{1,2,3}

为了回答当用户仅输入&#34; 1&#34;时为什么要打印所有3个元素的具体问题,这是因为该值正被读入变量num1,但{在打印输出的循环中的任何地方都不使用{1}}。如果您希望输入控制打印的值,则需要在num1循环的测试表达式(括号中的中间短语)中使用num1。我认为好的第一步是改变你的内循环:

for

另请注意,for (int i = 0; i<num1;i++){ System.out.println(stud1[1][i]); ctr1 =in.readLine(); } 移动到i++循环的括号内。如果您正在使用for,那就非常适合它。

希望这有帮助!