为什么这个程序需要2个循环才能运行?有没有办法写这个没有2 for循环?
其目的是将整数值1-25分配给长度为25的数组。然后将数组打印为五个单独的行,每行包含五个以逗号分隔的数组元素。
它的输出是这样的:
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18,19,20
21,22,23,24,25
public class ArrayNums
{
static int[] arrayList = new int[25];
public static void main(String[] args)
{
for(int i=0; i<25; i++)
arrayList[i] = i + 1;
printArray();
}
public static void printArray()
{
int i;
for(i=1; i<=25; i++){
if (i % 5 != 0)
System.out.print(arrayList[i-1]+",");
else
System.out.println(arrayList[i-1]);
}
}
}
答案 0 :(得分:0)
当然,主要功能是这样的:
public static void main(String[] args)
{
for(int i=0; i<25; i++){
arrayList[i] = i + 1;
if ((i+1) % 5 != 0)
System.out.print(arrayList[i]+",");
else
System.out.println(arrayList[i]);
}
}
尽管如此,让一个函数一次只做一件事被认为是更好的做法。这使得理解起来更容易,因此我建议您使用第一个版本。
答案 1 :(得分:0)
将其分开,因为这样可以分离关注,并更好地使用和维护程序。正如@ cricket_007所述,将buildArray()作为printArray()&#34;的单独函数更好。
在这种情况下,输出可以使用单个循环实现,而可以打印i而不是arrayList内容,但我怀疑你真的有一个关键需求在5行上打印1到25 - 假设构建和打印功能在实践中会改变。考虑几个场景:
场景1 让我们说稍后该程序还需要输出到CSV文件并返回一个JSON对象(不是同时但是通过不同的函数调用)。如果您在同一个循环中构建和打印,现在需要将构建部分放入三个不同的函数中。
场景2 我们假设您需要将数组的内容从数字更改为字母或输入数据,或者程序能够执行这三者中的任何一项。在循环中进行此更改会使查看潜在的冲突或错误变得更加困难。
场景3 情景1和情景2都会发生。
答案 2 :(得分:0)
我认为这会对你有帮助。你可以在第一个方法中轻松添加printarray()方法。
public static void main(String[] args) {
for(int i=1;i<=25;i++){
arrayList[i-1]=i;
if(i%5==0){
System.out.println(i);
}else{
System.out.print(i+",");
}
}
}