效果如图:
思路:找规律,每一排的"*"个数依次为:1,3,5,7...,2n-1;且除了最后一排的"*"的前面都有空格,空格个数也有规律:n-1,当然是倒过来的;然后以循环的方式一排一排的打印出来就OK了。
代码及详情如下:
public static void main (String[] args) {
System.out.print("请输入要打印的三角形的行数:");
int n;
//这里加了while死循环用来避免输入的数值不合理等情况
while(true) {
n=new Scanner(System.in).nextInt();//接收行数
if(n<1) {
System.out.print("错误!重新输入:");
}else {
break;
}
}
for(int i=1;i<=n;i++) {//外循环,i等于排数
//内循环1,打印*前的空格,每排空格个数为(intput-i)
for(int j=0;j<n-i;j++) {
System.out.print(" ");
}//每排空格打印完就接着打印图案
//内循环2,按规律每排的图案个数为(2*i-1)
for(int j=0;j<2*i-1;j++) {
System.out.print("*");
}
System.out.println();//打印完一排就换行
}
}