首先先了解什么叫做for循环和后++
for()循环
语法格式 for(①初始化部分;②循环条件部分;④迭代部分){ ③循环体部分; }
执行过程:①-②-③-④-②-③-④-②-③-④-……-②
执行过程为重点
说明: ②循环条件部分为boolean类型表达式,当值为false时,退出循环 ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔 ④可以有多个变量更新,用逗号分隔
后++或后–
for循环中,在变量后面的++或–,意味着先进行运算,当前一轮运算结束后下一轮运算开始前再进行++或–
将代码分为两部分,一部分为a1,a2,a3为上半段菱形,b1,b2,b3为下半段
1、第一个for循环,即a1首先为零,进入第二个for循环中,注意a2为递减,由于是后–,所以第一次a2值为5。,在此循环6次,第六次不满足条件,a2=a1=0,循环结束a1始终为零,a2从5变到零。即为输出5个空格。
2、五次循环后进入a3循环,a1仍为零,a3为后++。a3第一次值为0,a1也为0,所以输出***+空格**。第二次a3的循环,a3值为1,a3>a1,不满足循环条件,换行后,返回第一次循环
3、此时a1变成一接着进入a2所属循环语句,a2所属循环语句执行五次,第五次进入a3的循环语句,a3循环语句循环两次,第三次跳出换行返回a1循环语句
…
b1,b2,b3循环为–,与a1,a2,a3循环相反
源码
public class Ling {
public static void main(String[] args) {
for (int a1 = 0; a1 < 6; a1++) {
for (int a2 = (6 - 1); a2 > a1; a2--) {
System.out.print(" ");
}
for (int a3 = 0; a3< (a1 + 1); a3++) {
// 注意下方*号旁有空格
System.out.print("* ");
}
System.out.println();
}
for (int b1 = 6; b1 > 0; b1--) {
for (int b2 = (6 + 2); b2 > (b1 + 1); b2--) {
System.out.print(" ");
}
for (int b3 = 0; b3 < (b1 - 1); b3++) {
System.out.print("* ");
}
System.out.println();
}
}
}
效果图