2017-02-25 14 views
0

给出的字符串数组:嵌套的for循环使用数组的Java

String[] arrays = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N"}; 

我能够做的模式:

for(int i = 0; i < 6; i++) 
    { 
     for(int j = 0; j <= 6; j++) 
     { 
      System.out.print(" " + arrays[j]); 
     } 
     System.out.println(); 
    } 

我明白我的嵌套for循环的工作方式为i = 0和j = 0,J将打印所有的数组索引字母6. 此代码当前创建一个正方形的格式:

 A B C D E F G 
    A B C D E F G 
    A B C D E F G 
    A B C D E F G 
    A B C D E F G 
    A B C D E F G 

但我想要的是它继续它停止的地方,而不是从前面的重复,我知道我需要一个if语句嵌套for循环中的某处,但不知道if语句中包含的或它看起来像什么。 我想要什么:

 A B C D E F G 
    H I J K L M N 

预先感谢您。

+1

只要有一个循环从你的阵列开始到去它的结束。然后每七个字符打印一个新行。 –

+0

您可以跟踪使用其他变量在当前行中打印了多少个字符。确保在打印七个字符后,将变量正确重置为零。 –

+0

如果从我的回答中没有完全清楚,你绝对不需要嵌套for循环。您可以使用单个循环来完成此操作。 –

回答

1

相反嵌套for循环的,则可以测试是否当前索引模一半array.length0(即如果从除法的余数是0);如果它是打印一个新行。喜欢的东西,

String[] arrays = { "A", "B", "C", "D", "E", "F", "G", "H", "I", 
        "J", "K", "L", "M", "N" }; 
int half = arrays.length/2; 
for (int i = 0; i < arrays.length; i++) { 
    System.out.printf("%s ", arrays[i]); 
    if ((i + 1) % half == 0) { 
     System.out.println(); 
    } 
} 

输出(如需要)

A B C D E F G 
H I J K L M N 
+0

对不起艾略特我对我的问题还不够清楚,事情就是这个只是一个小测试,阵列实际上大约有50个字母,我希望它每6个字母连续下移 – Prodigy

+0

我认为你只需要写7而不是一半,然后这是迄今为止最好的答案 – CodingYourLife

+0

谢谢这工作 – Prodigy

0
for(int i = 0; i < 6; i++) 
{ 
    for(int j = 0; j <= arrays.length; j++) 
    { 
     System.out.print(" " + arrays[j]); 
     if(i == 6) 
      System.out.print("\n"); 
    } 
    System.out.println(); 
} 
+0

这个病让我错误只是说 – Prodigy

0
int j = 0; 
for(int i = 0; i < arrays.length; i++) 
{ 
    j++; 
    System.out.print(" " + arrays[i]); 
    if (j == 6) 
    { 
     System.out.println(); 
     j = 0; 
    } 
} 
0

可以使用while代替for环这样

public static void main (String[] args) throws java.lang.Exception 
{ 
    String[] arrays = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N"}; 
    int i = 0, j = -1; 
    while(i < arrays.length) { 
     System.out.print(" " + arrays[i]); 
     i++; 
     j++; 
     if(j == 6) { 
      System.out.println(); 
      j = -1; 
     } 
    } 
}