4循环结构
1.while循环1
while (循环控制表达式) {
循环体语句块;
}
S1:计算循环控制表达式,若为真则执行循环体语句块,否则退出循环;
S2:执行循环体语句块后,执行S1。
1)如果循环控制表达式恒为真,则构成无限循环;//break,return
2)while循环的循环体可能一次都不执行。
2.do-while循环
do {
循环体语句块;
} while (循环控制表达式); // 分号一定要有a>90
S1:执行循环体语句块;
S2:计算循环控制表达式,若为真则执行S1,否则退出循环。
do-while循环的循环体至少会被执行一次。
3.for循环
for (表达式1; 表达式2; 表达式3) {
循环体语句块;
}
S1:计算表达式1;
S2:计算表达式2,若为真则执行循环体语句块,否则退出循环;
S3:计算表达式3,执行S2。
T
1 -> 2 -> 体
F/ \ /
出 3
通常通过表达式1初始化循环变量,通过表达式2判断循环终止条件,通过表达式3更新循环变量。
continue语句:中断本次循环,继续下一次循环。对于while/do-while循环,continue -> 计算循环控制表达式 -> ...,对于for循环,continue -> 计算表达式3 -> 计算表达式2 ->
空语句:仅包含一个分号的语句。
int i = 10;
printf ("%d\n", i);
; // 空语句
空语句经常用来表示空循环体。在while/for循环中的圆括号后误写分号,意外形成了空循环,有可能导致错误的结果。
制作定时器源码: #include <stdio.h> #include <windows.h> int main() { int i=10; while(i>=0) { printf("\r%02d",i); printf("%c",'\a'); Sleep(1000); i--; }
}
制作时钟源码: #include <stdio.h> #include <windows.h> int main()//函数的入口,而且只能有一个,也不能多不能少。 { int i=0,j=0,k=0;//i是表示小时,j是表示分钟,k是表示秒 for(;;)//循环的固定格式 { printf("\r%2d:%02d:%02d",i,j,k++);//k++ 是自加1 20:16 //\r是移动到行首的意思, //%02d是向右对齐,当不足两位整数时用0我代替 Sleep(1000);//睡觉1秒钟 1000是毫秒,1000毫秒==1秒 if(k==6)//如果秒数等于60秒时 60==6 { k=0;//秒数赋值为0 j++;//分钟加1 if(j==6)//我这里定义为6,你们可以当为60 { j=0; i++;//小时+1 if(i==4)//4==24 return 0; } } } return 0; }