循环是我们在写重复代码时常常会用到的结构。但是当我们在写代码时,就会想,这个方法我应该使用什么样的循环来运行呢?到底是要用for循环、还是while循环、再则是do-while循环来写呢?因此,说说的自己的理解。
使用步骤:
- 判断是否需要使用循环, 看问题中是否有重复做的事情
- 找循环条件
- 找循环要做的事情
1. for循环(最常用的)
语法:
. for(表达式1,表达式2,表达式3){
//循环要做的事 循环体语句4
}for(int i = 0 , i < 10 , i++){ }
表达式1:初始化循环变量,给循环变量赋值,只执行一次
表达式2:循环条件表达式,boolean类型的结果,如果true,表示继续执行,否则反之(每循环一次执行一次)
表达式3:修改循环变量,如果不改,可能出现死循环(每循环一次执行一次)
例子:
public class Test {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i <= 20; i++) {
sum+=i;
}
System.out.println("从1到20的和为:"+sum);
}
}
结果为:从1到20的和为:210
细节:
表达式能省略, 两个分号一定不能省略
for循环的表达式细节:
1.表达式1可以省略,可以把表达式1写在for循环的外面,提升循环变量的作用域
2.表达式2可以省略,默认永远为true,出现死循环,需要避免死循环。也可以再循环体中使用break关键字退出循环
3.表达式3也可以省略,循环变量没有改变,可能出现死循环。也可以在循环体写表达式3
4.三个表达式都省略,但是两个分号不能省略
for(;;){//死循环 //在循环体中使用break退出循环 }
2.while循环
语法:
while(循环条件){
//循环体
}
相当于把for循环的表达式1 写在循环之外, 表达式3写循环体的for循环表达式1;
for(;循环条件;){
//循环体
//表达式3
}
例子:
public class Test {
public static void main(String[] args) {
int sum=0;
int i=0;
while (i<21){
sum+=i;
i++;
}
System.out.println("从1到20的和为:"+sum);
}
}
结果:从1到20的和为:210
while循环体包含: 重复做的事情, 还有修改循环遍历
for\while特征: 先判断,后循环, 可能一次都不执行(当一开始,循环条件为false的时候)
3.do-while循环
使用场景:
当需要先执行一次的时候,使用do-while最好
例如:遍历100以内的偶数,并计算所有偶数的和及偶数的个数
do-while: 特征: 先循环,后判断, 最小循环次数: 1
语法:
do{ }while(条件判断); 注意: while后面小括号之后有一个分号,不能省略
例子:
public static void main(String[] args) {
//遍历100以内的偶数,并计算所有偶数的和及偶数的个数
int num = 1;
int sum = 0;//记录总和
int count = 0;//记录个数
do{
if(num % 2 == 0){
// System.out.println(num);
sum += num;
count++;
}
num++;
}while(num <= 100);
System.out.println("总和为:" + sum);
System.out.println("个数为:" + count);
}
结果:总和为:2550
个数为:50