语法结构:
for(初始化变量;判断条件;更新变量){
…代码块/循环体…
}
案例1:执行顺序: 1.第一次进入到循环中,初始化变量1次 2.判断条件 - 结果必须是boolean类型 2.1 true - 执行代码块 并更新变量,再重复第2个步骤 2.2 false - 跳出循环
外层循环控制三角形行数,内层循环控制列数,内层 “*”号根据外层循环变量增加而增加,所以 j <= i。以下案例中的rows与案例一中一致。
Scanner input = new Scanner(System.in);
System.out.println("请输入三角形的行数:");
int rows = input.nextInt();
for(int i = 0;i < rows;i++){
for(int j = 0; j <=i; j++){
System.out.print("*");
}
System.out.println();
}
案例2:
倒三角,只要循环条件和循环变量从大到小,增加每层循环次数,到下次外循环后次数减一即可
for(int i = rows; i > 0; i--){
for(int j = i;j > 0; j-- ){
System.out.print("*");
}
System.out.println();
}
案例3:
相比于案例二只需要再打印三角形的同时打印一个小于该行数的倒三角即可,用"`" 表示空格
for(int i = 0; i < rows ;i++){
for(int m = 0; m < i; m++ ){
System.out.print(" ");
}
for(int j = i; j < rows; j++){
System.out.print("*");
}
System.out.println();
}
案例4:
与案例三一样只不过三角形下一行比上一行多2个号,所以只需要再内层循环中多循环两次即可
/
*
***
*****
*******
*/
System.out.println("-----------------");
for(int i = 1; i <= rows; i++){
for(int j = rows -i ; j > 0; j --){
System.out.print(" ");
}
for(int m = 0; m < i*2-1; m++){
System.out.print("*");
}
System.out.println();
}
案例5:
案例5是案例4的倒三角,方法与案例三类似。
for(int i = rows; i > 0; i--){
for(int j =i; j <= rows -1 ; j++){
System.out.print(" ");
}
for(int m = i*2-1;m >0; m--){
System.out.print("*");
}
System.out.println();
}
案例6:
空心三角形,没次打印时对内层循环变量进行判断只要循环变量为开始和结束时才打印号,否则打印空格,最后一行全为号时,只需要判断外层循环变量为最后一次,则全打印*号。
for(int i = 1;i <= rows; i++){
for(int j = rows -i ;j > 0; j--){
System.out.print(" ");
}
for(int m = 0; m < i*2-1; m++){
if(m == 0 || m == i*2-2){
System.out.print("*");
}else if(i == rows)System.out.print("*");
else System.out.print(" ");
}
System.out.println();
}
案例7:
案例6和案例三的结合即可。
System.out.println("-----------------");
for(int i = rows;i >=1;i--){
for(int j = rows -1; j >=i; j--){
System.out.print(" ");
}
for(int m = 0; m < i*2-1;m++){
if(m == 0 || m == i*2-2){
System.out.print("*");
}else if(i == rows)
System.out.print("*");
else System.out.print(" ");
}
System.out.println();
}



