用代码实现等腰三角形并且从1-9不断来回循环
如图:
首先思考如何出现等腰三角的图形,分成两步实现
第一步,填补空白
示例:
//定9行(此为注解)
for (int i = 1; i <= 9; i++) {
//i=1,空=8(此为注解)
//i=2,空=7(此为注解)
//i=3,空=6(此为注解)
for (int j = 1; j <= 9 - i; j++) {
System.out.print(" ");
}
这样就实现了将等腰三角形之前的空白填满
第二步,填充内容,暂时先将1-9的数字用*来表示的话如下
示例:
//紧接内层for循环继续往下写(此为注解)
//i=1, =1(此为注解)
//i=2, *=3(此为注解)
//i=3, *= 5(此为注解)
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print(sum);
}
记得要在外层for循环加System.out.println();换行
这样就完成了等腰三角形的打印,结果如下:
*
***
*****
*******
*********
***********
*************
***************
*****************
接下来思考如何将里面的*用1-9来代替
我们发现1-9是有规律的增加,我们要解决的问题就是如何将到9后的下一位继续从1开始
解决方案:
设一个变量int sum = 1;
使其在每执行一次for循环后自增1,那么我们只需要在for循环里写上一个sum++;即可
之后我们要解决的问题就是如何将到9后的下一位继续从1开始
设置一个简单的判断语句,使其判断sum = 10的时候减去9得到1即可
示例:
if (sum == 10) {
sum = sum - 9;
}
最终实现的代码即为:
public class Demo {
public static void main(String[] args) {
int sum = 1;
//定9行(此为注解)
for (int i = 1; i <= 9; i++) {
//i=1,空=8(此为注解)
//i=2,空=7(此为注解)
//i=3,空=6(此为注解)
for (int j = 1; j <= 9 - i; j++) {
System.out.print(" ");
}
//i=1, =1(此为注解)
//i=2, =2,3,4(此为注解)
//i=3, = 5,6,7,8,9(此为注解)
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print(sum);
sum++;
if (sum == 10) {
sum = sum - 9;
}
}
System.out.println();
}
}
}
得到的结果为:
1
234
56789
1234567
891234567
89123456789
1234567891234
567891234567891
23456789123456789
完成,每步分开分析的话会发现恶心的三角形一点也不恶心了,很简单解决问题哦