黑马程序员——循环结构for,while,do..while
黑马程序员——循环结构
一、循环结构的概述:在给定条件成立的时候,反复执行程序,直到条件不成立为止。
循环结构:循环一次又一次的执行相同的代码块
用while语句
用do-while语句
用for语句
二、循环结构的组成
1)循环控制条件
循环退出的主要依据,来控制循环 到底什么时候退出
2)循环体
循环的过程中重复执行的代码块
3)能够让循环结束的语句(递增、递减、真、假等)
能够让循环条件为假的依据,否则退出循环
**While循环结构介绍及格式**
1、while循环的格式
while(条件表达式){
语句1;
语句2;
。。。
}
如果表达式为真,则执行语句
循环结构:当条件满足的时候,程序会重复执行代码块。
构成循环结构的条件:1)循环控制条件2)循环体3)让循环控制条件为假的控制
#include "stdio.h"
void main()
{
int i=1;
//循环控制条件
while(i<=10){
//循环体
printf("hello\n");
//能够让循环控制条件为假,从而不导致死循环
i=i+1;
}
}
2、 while循环的陷阱
死循环:一直执行循环体中代码,不会退出
while(条件) 条件一直为真
练习:计算1+2+3+……+100的和
#include <stdio.h>
void main()
{
//定义变量i与sum.
int i=1,sum=0;
while(i<=100){
//用sum的值加i的值
sum=sum+i;
//i的自增
i++;
}
printf("1+2+3+...+100=%d\n",sum);
return 0;
}
3、
1)死循环:任何数值都有真假性
while(-1) 死循环
2)当一个变量与一个常量进行==或!=的时候,通常把常量写在前面
int num=3;
while(3==num){}
3)while后如果只有一条语句它可以省略大括号
1、空语句它是一条语句
2、while小括号后面不可以直接写分号
4)作用域:内部代码块中定义的变量不可以在外边代码中访问
5)作用域紊乱
while(1<3)
int num=5
**do-while循环结构介绍及格式**
1、 do-while循环结构
do{
语句2;
语句1;
}while(条件);
与while的区别}while(条件);
当型循环:当条件满足的时候,再去执行循环体
直到型循环:先执行循环体,然后判断条件,直到条件为假就结束
**while与do-while对比**
#include "stdio.h"
void main()
{
while(i<=3){
printf("while:第%d次我爱你\n",i);
i++;
}
do{
printf("do-while:第%d次我爱你\n",i);
i++;
}while(i<=3);
return 0;
}
1) 当循环控制条件第一次判断不为假的时候:while和do-while执行的次数相同
2) 当循环控制条件第一次判断为假的时候:while循环体执行0次,do-while执行1次
**for循环结构介绍及格式**
for(表达式1;表达式2;表达式3){语句;}
执行过程:1)先求解表达式1。
2)求解表达式2,若其值为“真”,,则执行for语句中指定的内嵌语句,然后执行第(3)步,若为“假”,则结束循环转到第(5)步。
3)求解表达式3
4)转回上面第(2)步骤继续进行
5)循环结束,执行for语句下面的语句
/* 循环打印我爱你10次 */
#include "stdio.h"
void main()
{
//循环控制条件:i<10
//循环体:printf("第%d次说我爱你\n",i+1);
//能够让控制一傲剑为假的操作:i+1
int i=0;
for(i;i<10;i++){
printf("第%d次说我爱你\n",i+1);
}
}
注意:初始化语句只会被执行一次
表达式省略(三个表达式都可以省略)
for(;;)语句相当于while(1)
**循环的嵌套**
几种合法的形式
(1)while(){
while(){}
}
(2)do{
do{}while()
}while()
(3)for(;;){
for(;;){}
}
(4)while(){
do{}while();
}
(5)for(;;){
while(){}
}
(6)do{
for(;;){}
}while();
几种循环的比较
1、在while循环和do…while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++或i=i+1等)
2、for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for都能实现
3、用while和do…while循环时,循环变量初始化的操作在while和do…while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化
whlie的N-S流程图
for的N-S流程图
do...while的N-S流程图