循环结构
循环条件必须是boolean类型
while循环
语法格式
初始化条件;------>循环外
while(循环条件){
循环体;
迭代条件;
}
执行过程:1-->2-->3-->4-->2-->3-->4-->2-->3········
- for循环和while循环是可以相互转换的!
- 区别:for循环和while循环的初始化条件部分的作用范围不同。
do-while
先执行后判断
语法格式
初始化条件;
do{
循环体;
迭代条件;
}while(循环条件);
执行过程::1-->3-->4-->2-->3-->4-->2-->3-->4-->2-->3········
- do-while循环至少会执行一次循环体!
- 开发中,使用for和while更多一些。较少使用do-while
for循环
语法格式:
for (1、 初始化条件; 2、循环条件; 4、迭代条件){
3、循环体
}
执行过程:1-->2-->3-->4-->2-->3-->4-->2-->3········
public static void main(String [] args){
int sum;
int i;
for(i=1;i<=100;i++){
if(i%2!=0){
sum=1;
}else{
sum=1;
}
}
System.out.print(sum); //报错,变量 'sum' 可能尚未初始化。
}
编译无法通过:for之外未初始化,即使for之内初始化亦通过不了
原因:for循环可能未达到循环条件而无法进入
int sum;
//int i;
//for(i=1;i<=100;i++){
if (4 % 2 != 0) {//false
sum = 1;\\条件表达式为false,此处语句不执行,此处未初始化亦能编译通过
} else {
sum = 1;\\条件表达式为false,此处未初始化不能编译通过
}
System.out.print(sum);
编译可通过:变量sum声明时虽未初始化,但if - else结构中初始化了;而程序执行到if - else结构是必定会执行其中一条分支的。