如何在 java 中使用单个循环打印 2 个不同长度但数据类型相同的数组



我试过这个

public static void main(String[] args) throws ArrayIndexOutOfBoundsException
{
int arr1[]= {1,2,3,4,5};
int arr2[]= {6,7};
for(int i=0;i<arr1.length;i++)
   {
     System.out.println(arr1[i]);
     System.out.println(arr2[i]);
   }
}

但这行不通。

你必须找到最大长度,然后关心你可以输出什么,以免达到边界。

public static void main(String[] args) throws ArrayIndexOutOfBoundsException
{
int arr1[]= {1,2,3,4,5};
int arr2[]= {6,7};
int max = arr1.length;
if (max < arr2.length){
  max = arr2.length;
}
for(int i=0;i<max;i++)
   {
     if (i < arr1.length){
       System.out.println(arr1[i]);
     }
     if (i < arr2.length){
       System.out.println(arr2[i]);
     }
   }
}

循环迭代到两个数组的最大长度,并仅打印索引有效的数组元素。

public static void main(String[] args) throws ArrayIndexOutOfBoundsException
    {
    int arr1[]= {1,2,3,4,5};
    int arr2[]= {6,7};
    for(int i=0;i<Math.max(arr1.length, arr2.length);i++)
       {
         if(i<arr1.length)
             System.out.println(arr1[i]);
         if(i<arr2.length)
             System.out.println(arr2[i]);
       }
    }

试试这个,我认为这会起作用

int arr1[]= {1,2,3,4,5};
int arr2[]= {6,7};
int a1 = arr1.length();
int a2 = arr2.length();
int n = a1 > a2 ? a1 : a2;
for(int i = 0; i < n; i++) {
    if(a1 > i) 
        System.out.println(arr1[i]);
    if(a2 > i) 
        System.out.println(arr2[i]);
}

祝你好运

或者

,为了一个接一个地打印它们:

  int arr1[]= {1,2,3,4,5};
  int arr2[]= {6,7};
  for (int i=0; i < arr1.length + arr2.length; ++i)
  {
     if (i < arr1.length)
         System.out.println (arr1 [i]);
     else 
         System.out.println (arr2 [i - arr1.length]);
  }
您可以使用

以下代码。您仍然可以满足两个数组长度相同的条件。仅当数组的长度不同时,这才有效。

public static void main(String[] args) throws ArrayIndexOutOfBoundsException
{
    int arr1[]= {1,2,3,4,5};
    int arr2[]= {6,7};
    int arr1Length = arr1.length;
    int arr2Length = arr2.length;
    if(arr1.length>arr2.length)
    {
        for(int i=0;i<arr1.length;i++)
           {
             System.out.println(arr1[i]);
                if(i<arr2.length)
                {
                System.out.println(arr2[i]);
                }
                else continue;
       }
    else{
            for(int i=0;i<arr2.length;i++)
               {
                if(i<arr1.length)
                {
                 System.out.println(arr1[i]);
                }
                else continue;
                 System.out.println(arr2[i]);
               }
    }
}

最新更新