1、for循环的语法机制以及运行原理?
for(初始化表达式;条件表达式;更新表达式){<br /> 循环体; // 循环体由java语句构成<br /> java语句;<br /> java语句;<br /> java语句;<br /> java语句;<br /> ....<br /> }
注意:
第一:初始化表达式最先执行,并且在整个循环中只执行一次。<br /> 第二:条件表达式结果必须是一个布尔类型,也就是:true或false
执行原理:
先执行初始化表达式并且初始化表达式只执行1次。<br /> 然后判断条件表达式的结果,如果条件表达式结果为true<br /> 则执行循环体<br /> 循环体结束之后,执行更新表达式。<br /> 更新完之后,再判断条件表达式的结果,<br /> 如果还是true,继续执行循环体。<br /> <br /> 直到更新表达式执行结束之后,再次判断条件时,条件为false,<br /> for循环终止<br />
更新表达式的作用是:控制循环的次数,
换句话说,更新表达式会更新某个变量的值,<br /> 这样条件表达式的结果才有可能从true变成false,<br /> 从而终止for循环的执行,如果确实更新表达式,很有可能会导致死循环。
public class ForTest02{
public static void main(String[] asge){
// 最简练的for循环怎么写?
// 初始化表达式、条件表达式、更新表达式 其实都不是必须的!!!
/*
for(;;){
System.out.println("死循环");
}
*/
// 最常见的for循环
// 循环10次,输出0~9
/*
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
...
强调一下:对于一下的这个for循环,其中int i = 0;
最先执行,并且只执行一次,而且i变量属于for循环
的局部变量,for循环结束之后i的内存就释放了。
这个i变量只能在for循环中使用。
这个i变量属于for循环域。
在main方法中没有办法直接使用。
*/
for(int i = 0;i < 10;i++){
System.out.println("i = " + i);
}
// 错误:找不到符号
//System.out.println(i);
// i变量的作用域就扩大了。
int i = 0;
for(;i < 10;i++){
System.out.println("i =》 " + i);
}
System.out.println("这里的i可以访问吗?i = " + i); // 10
// 变形
for(int k = 0;k<=10;k++){
System.out.println("k --> " + k); // 10
}
// 变形
for(int k = 0;k<=10;){
System.out.println("k --> " + k);
k++;
}
// 变形
for(int k = 0;k<=10;){
k++;
System.out.println("k --> " + k);// 2 3 4 5 6 7 8 9 10
}
}
}