开发者社区> 问答> 正文

哪个For循环将首先执行,然后首先完成?

我对嵌套循环变体感到困惑。这些循环以某种方式给出了相同的结果,但是我无法将其包裹住。例如,在第二个代码中,它说的是col <values [rows]的部分,values [rows] = 4(因为有4行)吗?因此,我只是想知道这些循环如何相互作用,哪个循环首先执行并首先完成?

for (int row = 0; row < 4; row++)                                    
 {
    for (int col = 0; col < 3; col++)
    {
       System.out.print(values[row][col] + " ");
    }

    System.out.println();   
}
for (int row = 0; row < values.length; row++)
{
   for (int col = 0; col < values[row].length; col++)
   {
      System.out.print(values[row][col] + " ");
   }

   System.out.println();    
}

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 19:00:27 405 0
1 条回答
写回答
取消 提交回答
  • 我不确定您要在这里问什么,但我想您只是想知道这两个代码块之间的区别。

    我将通过一个简单的示例向您解释:

    import java.util.*;
    public class HelloWorld{
    
         public static void main(String []args){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();
            int[][]values = new int[n][m];
            for(int i=0; i<n;i++){
                for(int j=0; j<m; j++){                //read a 5 x 8 array
                    values[i][j]= sc.nextInt();
                }
            }
            System.out.print("Input Array :");
            for(int i=0; i<n;i++){
                for(int j=0; j<m; j++){
                    System.out.print(values[i][j] +" ");
                }
                System.out.println("");
            }
            System.out.print("First Code :");
            for (int row = 0; row < 4; row++)                                    
            {
                 for (int col = 0; col < 3; col++)
                 {
                      System.out.print(values[row][col] + " ");
                 }
                System.out.println();   
            }
            System.out.print("Second Code :");    
            for (int row = 0; row < values.length; row++)
            {
                for (int col = 0; col < values[row].length; col++)
                {
                     System.out.print(values[row][col] + " ");
                }
    
                System.out.println();    
             }    
         }
    }
    

    输入:

    5 8 
    3 3 3 3 3 3 3 3 
    4 4 4 4 4 4 4 4
    5 5 5 5 5 5 5 5 
    6 6 6 6 6 6 6 6 
    7 7 7 7 7 7 7 7 
    

    该程序的输出为:

    Input Array :3 3 3 3 3 3 3 3 
    4 4 4 4 4 4 4 4 
    5 5 5 5 5 5 5 5 
    6 6 6 6 6 6 6 6 
    7 7 7 7 7 7 7 7 
    First Code :3 3 3 
    4 4 4 
    5 5 5 
    6 6 6 
    Second Code :3 3 3 3 3 3 3 3 
    4 4 4 4 4 4 4 4 
    5 5 5 5 5 5 5 5 
    6 6 6 6 6 6 6 6 
    7 7 7 7 7 7 7 7 
    

    因此,如您所见,如果values.length = 4和values [row] .length = 3,则第一个块的工作原理与第二个块完全相同,否则它们将给出不同的结果。遍历数组的一个好习惯是使用array.length而不是硬编码length的值。

    回答来源:Stack Overflow

    2020-03-25 19:01:39
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载