有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我对嵌套循环变量感到困惑。不知何故,这些循环给出了相同的结果,但我不能把我的头绕在它周围。就像在第二段代码中,col<;值[行],值[行]不等于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();    
}

共 (3) 个答案

  1. # 1 楼答案

    在第一个循环中:

    系统。出来打印(值[0][0]+”)

    系统。出来打印(值[0][1]+”)

    系统。出来打印(值[0][2]+”)

    系统。出来打印(值[1][0]+”)

    系统。出来打印(值[1][1]+”)

    系统。出来打印(值[1][2]+”)

    等等。。。。intern循环将运行4x,因为行的值=4。所以intern循环(col循环)的输出是4*3=12系统。出来打印()。了解了?Row*Col是您正在寻找的方程式。使用它来计算第二个代码。要了解更多信息,请显示values param中定义的值

  2. # 2 楼答案

    我不知道你想问什么,但我想你只是想知道这两段代码之间的区别

    我将用一个简单的例子向您解释:

    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 
    

    所以,正如你们所看到的,第一个块的工作原理和第二个块的if值完全相同。长度=4,值为[行]。长度=3,否则会产生不同的结果。遍历数组的好方法是使用数组。长度,而不是硬编码长度的值

  3. # 3 楼答案

    对于第一节中的For循环,您将尝试遍历4x3数组。因此,对于每一行,它都会遍历指定的列数。它停在最后一行的最后一列

    对于第二部分中的For循环,我认为当您不知道行和列的值时,它会更合适

    第一个完成取决于第二种情况下行的长度,但在第一种情况下是固定的