写给新手 【循环专项总结】
【循环专项总结】一:while与do-while语句的格式:
while语句的格式如下:
【1】while(条件表达式)
//循环体
或
【2】while(条件表达式){
//循环体
}
【1】:while后面必须加小括号,里面填入的表达式可以是任何类型的表达式,返回的一定是逻辑值,非真即假;循环体是一句代码的话,可以不要大括号
【2】:while后面必须加小括号,里面填入的表达式可以是任何类型的表达式,返回的一定是逻辑值,非真即假;循环体是多行代码的话,需要加上大括号
do-while语句的格式如下:
【1】do{
//循环体
}while(条件表达式);
【1】:do-while语句,do和while结合一起,必须加上大括号,在while语句括号里填入条件表达式,在括号后面一定要加";" (分号).
二:do-while和while语句的区别:
【1】:格式区别
while语句可以不加大括号,但do-while一定要加大括号;而且do-while语句while括号后面一定要加";"(分号结束)。
【2】:执行区别
while语句是先判断条件再执行循环体;do-while语句先执行循环体在判断条件。
在条件都为真的时候,他们都执行一次,但条件为假的时候,do-while语句比while语句多执行一次。
例子:
#include <stdio.h>
void main()
{
int i=2;
int j=2;
while(i<2){
i++;
}
printf("while语句: %d\n",i);
do{
j++;
}while(j<2);
printf("do-while语句:%d\n",j);
}
【运行结果是:2 3 可以看出条件为假的时候,do-while语句比while语句多执行一次】
三:for循环语句的格式
for语句的一般表达式:
for(表达式1;表达式2;表达式3)==for(循环变量赋初值;循环条件;循环步长控制值)
表达式1:初始化表达式(设置初始条件,只执行一次。可以为0个,一个或多个变量设置初始值)
表达式2:循环条件表达式(循环判断条件,看是否继续执行)
表达式3:循环变量控制表达式(在执行完循环体后,自增或自减)
四:for循环语句的多种形式【求1加到100的算法表现形式】
(1):for语句的一般形式
int i;
int s=0;
for(i=1;i<=100;i++){
s=s+i;
}
或者是:
int s=0;
for(int i=1;i<=100;i++){
s=s+i;
}
【一般表达式是三个条件表达式都写完整,可以在初始化表达式里直接声明定义并赋初始值】
(2):表达式1,可以忽略,但后面的分号不能忽略
int i=1;
int s=0;
for(;i<=100;i++){
s=s+i;
}
【初始化表达式可以不写,但要在前面声明定义赋初始值】
(3):表达式2,可以忽略,但前后两个分号不能忽略
int s=0;
for(int i=1;;i++){
if(i>100){
break;
}else{
s=s+i;
}
}
【条件表达式可以忽略,但整个循环语句没有限制条件,就会是死循环,所以需要加控制语句break】
(4):表达式3,可以忽略,但第二个分号不能忽略
int i;
int s=0;
for(i=1;i<=100;){
s=s+i;
i++;
}
【循环变量控制表达式可以忽略,但需要在循环体里面加上循环变量控制表达式,一定要在循环体后面加,因为按照for循环语句运行机制,先执行循环体再自增自减】
(5):表达式1 和 表达式2 可以忽略
int i=1;
int s=0;
for(;i<=100;){
s=s+i;
i++;
}
【初始化表达式和循环变量控制表达式都可以忽略,其中初始化表达式要在前面进行声明定义,循环变量控制表达式要在循环体后面写】
(6):三个表达式全部忽略
int i=1;
int s=0;
for(;;){
if(i>100){
break;
}else{
s=s+i;
i++;
}
}
【三个表达式全部忽略话,就会出现死循环,需要在循环体加上控制条件】
(7):表达式1可以是其他表达式(非循环变量初始表达式可以是与循环变量无关的表达式)
int i=1;
int s;
for(s=0;i<=100;i++){
s=s+i;
}
【初始化表达式1中可以是其他表达式,但需要在前面进行声明定义与赋初值】
(8):初始化表达式1和初始化表达式3可以是多个变量
int i;
int j;
int s=0;
for(i=1,j=3;i<=100;i++,j+=3){
s=s+i;
}
【初始化表达式和循环变量控制表达式可以是多个变量,但要用逗号来隔开,起作用也是自增自减】
(9):可以是多个条件表达式,但一般会按照最小的条件执行结束
int i;
int j;
int s=0;
for(i=1,j=2;i<=100,j<50;i++,j+=2){
s=s+i;
}
【条件表达式中可以是多个,但会按照执行次数最小的那个执行进而结束整个循环语句】
(10):循环变量控制表达式可以是多个
int i;
int s=0;
for(i=1;i<=100;i++,i++){
s=s+i;
}
等同于:
int i;
int s=0;
for(i=1;i<=100;i+=2){
s=s+i;
}
【循环变量控制表达式可以是同一个的多个,相当于叠加有等同效果】
五:死循环
(1):
for(;;)
(2):
while(真){
}
(3):
do{
}while(真);
(4):
for(int i=1;;i++){
}
【1和4只要没有条件表达式,就是死循环,因为他没有条件来结束整个循环;;2和3只要条件用为真的时候就会出现死循环!】