三大循环的区别
在做循环问题的时候,最主要的是要把自己的思路理清楚,首先要思考回答下列四个问题:
(1)初始化条件?
(2)控制循环的条件?
(3)反复做的事?
(4)怎么进入下一个循环?
eg:求1—100的和
(1)初始化条件:sun=0;num=1;
(2)控制循环的条件:num<=100;
(3)反复做的事:sum=sum+num;//sum+=num;
(4)怎么进入下一循环:num++;
下面用三个方法写:
(1)while循环
int sum = 0;
int num = 1;
while (num <= 100)
{
sum += num;//sum=sum+num;
num++;
}
(2)do…while循环
int sum = 0;
int num = 1;
do {
sum += num;
num++;
} while (num <= 100);
(3)for 循环
int sum = 0;
for (int num = 1; num <= 100; num++)
{
sum += num;
}
for循环这里的条件看起来就不像其他两个那么简单明了,但是我们可以将(num=1;num<=100)看作是num的取值范围为[1,100],步长为1。这样子就会简单明了,通俗易懂,对for循环的理解就更有利!
综上所述 ,三种循环是可以相互替换的,但是这三种循环也有一定的差异性。
三种循环的基本结构:
(1)while循环
while(表达式)语句
语句就是循环体。循环体只能是一个语句,可以是一个简单的语句,还可以是复合语句(用花括号括起来的若干语句)。执行循环体的次数是由循环条件控制的,这个循环条件就是上面一般形式中的“表达式”。
特点:先判断条件表达式,后执行循环体语句。
(2)do while()循环
do
{
语句
}
while(表达式)
特点:先无条件地执行循环体,然后判断循环条件是否成立。
(3)for循环
for(表达式1;表达式2;表达式3)
{
语句
}
表达式1:循环变量初始值
表达式2:循环条件
表达式3:循环变量增值
建议:不可在for循环体内修改循环变量,防止for循环失去控制;for语句的循环控制变量的取值采用“前闭后开区间”写法
适用于知道范围的情况(或者知道循环次数的情况),当循环次数(或范围)不确定时用while do…while 循环。
几种循环的比较
(1)3种循环都可以用来处理同一问题,一般情况下他们可以互相代替。
(2)在while循环和do…while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。
for 循环可以在表达式3中包含是循环趋于结束的操作,甚至可以将循环体中的操作全部放在表达式3中。因此for 语句的功能更强,凡用while循环能完成的,用for 循环都能实现。
(3)用while和do…while循环时,循环变量初始化的操作应在while和do…while语句之前完成。而for语句可以在表达式1中 实现循环变量的初始化。
(4)while循环、do…while循环和for循环都可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句)。