【问题标题】:How are 2D Multidimensional arrays populated?如何填充二维多维数组?
【发布时间】:2018-01-27 18:58:35
【问题描述】:
 Scanner scan = new Scanner(System.in);

      double [][] DailyTemperature;

        double totalTracker = 0.0;
        String [] daysofweek = { "Monday ","Tuesday ","Wednsday ","Thursday","Friday ","Saturday ","Sunday "};

        DailyTemperature = new double[4][7];

        for ( int i = 0; i < DailyTemperature.length; i++ )
           for ( int j = 0; j < DailyTemperature[0].length; j++ )
            {
                System.out.print( "Enter " + daysofweek[j]+ "Temperature for week" + ( i + 1 ) + "\t");
                DailyTemperature[i][j] = scan.nextDouble( );

            }

所以这个问题只是确认二维数组是如何填充的,我的问题是在嵌套的 for 循环中,因为 i 增加到 1 它是否保持为 1 直到 j 被计数 7 次然后增加 1,或者它们同时增加?

【问题讨论】:

    标签: java arrays for-loop multidimensional-array


    【解决方案1】:

    只需将它们视为堆栈即可。从外部循环开始,您将其放入堆栈执行然后进入内部,因此最深级别的循环将位于顶部。你必须完成最顶层元素或最深层循环的工作,然后它会在它下面循环。这只是本案例的类比。

    【讨论】:

      【解决方案2】:

      j 的内部循环继续运行精确的次数,直到达到满足'j

      for ( int i = 0; i < DailyTemperature.length; i++ )//executes firstly once
                 for ( int j = 0; j < DailyTemperature[0].length; j++ )// continues execution until j < DailyTemperature[0].length.
                  {
                      System.out.print( "Enter " + daysofweek[j]+ "Temperature for week" + ( i + 1 ) + "\t");
                      DailyTemperature[i][j] = scan.nextDouble( );
      
                  }
      

      【讨论】:

        【解决方案3】:

        它是否保持为 1 直到 j 被计数 7 次然后递增 1

        是的,但更准确地说,它从 0 开始,所以它保持为 0,然后递增 1。

        事实上,您可以通过在提示输入之前放置此 println 语句来非常轻松地验证这一点:

                        System.out.println("i is now " + i + ", and j is now " + j);
        

        还有输出:

        i is now 0, and j is now 0
        Enter Monday Temperature for week1  100
        
        i is now 0, and j is now 1
        Enter Tuesday Temperature for week1 200
        
        i is now 0, and j is now 2
        Enter Wednsday Temperature for week1    300
        
        .
        .
        .
        
        
        i is now 0, and j is now 6
        Enter Sunday Temperature for week1  700
        
        i is now 1, and j is now 0
        Enter Monday Temperature for week2  800
        
        i is now 1, and j is now 1
        Enter Tuesday Temperature for week2 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-27
          • 1970-01-01
          • 2016-08-07
          • 1970-01-01
          • 1970-01-01
          • 2020-08-02
          • 2016-07-13
          相关资源
          最近更新 更多