摘要:
今天在论坛看到一位网友的问题:java多重循环相关
原文如下:java多重循环相关
求解问题如下:
怎么让第三列及以后也像第二列一样,实现顺序输出?
最终希望实现的效果图:
这段代码该怎么改?
import java.util.Scanner;
public class test6 {
public static void main(String[] args) {
//接收系统输入一个数,该数为展示的列数,按照如下内容输出结果,注意顺序
Scanner input = new Scanner(System.in);
System.out.print("请输入直角三角形的行数:");
int line = input.nextInt();
int sum=0;
// 根据行数生成三角形,每行星号个数是行数的2倍+1
for(int i = 1; i < line; i++){
for(int j = 0; j < i+1; ){
System.out.print(i+"\t");
break;
}
for (int k = i-1; k >=1; k--) {
if (k<i-1) {
sum=sum+i+line;
}else {
sum=i+line-2;
}
System.out.print(sum+"\t");
}
System.out.println();
}
input.close();
}
}
代码运行图:
怎么样。看完这道题,你心里有答案了吗?
解决方案如下:
下面是程序羊的解决方案,仅供参考:
参考代码:
package com.gx.demo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 接收系统输入一个数,该数为展示的列数,按照如下内容输出结果,注意顺序
Scanner input = new Scanner(System.in);
System.out.print("请输入直角三角形的行数:");
int line = input.nextInt();
int sum = 0;
for (int i = 1; i <= line; i++) {
// 输出第一列
for (int j = 0; j < i;) {
System.out.print(i + "\t");
break;
}
// 逐层减一,i增大,k减小
for (int k = i - 1; k >= 1; k--) {
if (k < i - 1) {
sum = sum + line - (i - k);
} else {
sum = i + line - (i - k);
}
System.out.print(sum + "\t");
}
System.out.println();
}
input.close();
}
}
实现效果如下:
注意:
每一列的数字都是有规律是自增。
难点:
熟练掌握for循环的多重嵌套使用。