初级Java: for 循环详解及实战小项目(星号输出菱形,各种三角形)----以初学者的角度分析阐述
语法:
for(初始操作语句;终止操作条件语句;每次循环后的操作语句){
循环体;
}
流程控制:
(1)单层for循环
for(Statement A; Statement B; Statement C){
Statement D;
Statement E;
}
执行顺序如下:
|Statement A (该语句只会执行一次)
| |判断是否满足Statement B
| | |若满足
| | | |执行 Statement D, Statement E
| | | |Statement C
| | | |再一次判断是否满足Statement B
| | |若不满足, 则终止循环。
(2)for循环嵌套
Outer:
for(Statement A; Statement B; Statement C){
Inner:
for(Statement X; Statement Y; Statement Z){
Statement M;
Statement N;
}
}
执行顺序如下:
|Outer循环:Statement A (该语句只会执行一次)
| |判断是否满足Statement B
| | |若满足
| | | |执行 Inner循环: Statement X (本语句执行次数为Outer循环的次数)
| | | |判断是否满足Statement Y
| | | | |若满足
| | | | | |执行 Statement M, Statement N
| | | | | |执行 Statement Z
| | | | | |再次判断Inner循环 是否满足Statement Y
| | | | |若不满足, 退出Inner循环。
| | | | | |执行Statement C
| | | | | |再次判断Outer循环 是否满足Statement B
| | |若不满足, 则终止Outer循环,即整个循环。
示例:
for( int i = 0; i < 5; i++){
System.out.println(“Hello World”);
}
此示例中:
int i = 0 为初始操作语句。
i < 100 为终止操作条件语句。(可以理解为判断语句,判断是否继续循环)
i++ 为每次循环后的操作语句。
即:
int 变量i的循环初始值为0, 终止条件为小于100, 每次循环后i值自增。
控制台显示结果:
Hello World
Hello World
Hello World
Hello World
Hello World
与while循环对比:
某些情况下for循环与while循环可以相互转化。
for循环:
--------------------------------------------------
for( int i = 0; i < 5; i++){
System.out.println(“Hello World”);
}
while循环:
--------------------------------------------------
int i = 0;
while(i<5){
System.out.println(“Hello World”);
i++
}
即:
for(Statement A; Statement B; Statement C){
Statement D;
Statement E;
}
可以转换为:
Statement A;
while(Statement B){
Statement D;
Statement E;
Statement C;
}
反之亦然。
死循环:
while(true){
System.out.println(“*”);
}
for( ; ;){
System.out.println(“*”);
}
以上两种效果是一样的。
需要注意:
for循环小括号内语句之间的分隔符为”;”
for循环,包括所有java中的符号应为英文输入法下的符号,否则编译会出错。
大括号内的循环体是每次循环所进行操作的语句。
最外层循环的初始语句会被执行一次。
项目1:
输出效果:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
--------------------------------------------------------------------
代码实现:
package blog.austin.loop;
public class Test1{
public static void main(String[] args) {
for(int i = 1; i <= 6; i++){
for(int j = 1; j <= i; j++){
System.out.printf("%3d", j);
}
System.out.println();
}
}
}
代码解析:
5-10行为外层for循环,6-8行为内层for循环。
外层循环控制输出的行数,可以将i<=6中的6更改为想要的输出行数。
内层循环控制每行输出的个数,j<=i表示每行的数字输出个数与当前行数相同。
printf: 格式化输出 (f代表format)。
System.out.printf("%3d", j); 意为将 j 格式化输出,每个j占3个字符
内部循环结束后,即完整一行输出后,System.out.println()的功能为换行。