java - 从数组中获取索引并将其输出到java中

标签 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,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 循环的括号内。如果您使用 for,这确实是它所属的地方。

希望这有帮助!

关于java - 从数组中获取索引并将其输出到java中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375269/

相关文章:

java - 将 ExoPlayer 中播放的视频打开到外部播放器 Intent 中

java - 为什么我的代码有 IllegalStateException 错误

c++ - 如果带有 char 数组的语句无法正常工作

javascript - 根据用户输入的过滤标记 leaflet.js

java - 为什么我的代码总是允许重复的名称?

java - 尝试在 Java 中模仿 Scala 选项时出现问题

java - 从反序列化文件中读取字节

java - 求二维数组java的总和

java - 如何在没有双 for 循环的情况下使用 HashMap 填充二维数组

Python - 用户通过 CGI 输入。线程和读取文件