- while循环
当需要反复执行某些过程的时候,就可以使用while循环
demo:数羊
#include <stdio.h>
#include <string.h>
#include <Windows.h>
int main(void){
int i = 1;
while (i<=10){
printf("第%d只羊\n", i);
Sleep(1000);
i++;
}
printf("我睡着了\n");
return 0;
}
while(1){} 死循环
while(条件) {} 带条件循环
break 跳出循环
关于死循环,有些场合是需要死循环,比如游戏引擎主框架,更多的场合是要避免进入死循环
- for循环
从功能上,for和while是完全等效的
在某种场合更加方便,如在循环次数已经确定的情况下使用for循环更方便
for(表达式1;表达式2;表达式3){循环体}
//3个表达式任意一个或多个都可以省略!但是其中的分号不可以省略 for(;;){}死循环,相当于while(1)
//表达式1是为循环做准备,表达式2是循环条件,表达式3是用来改变循环条件(循环计数)
#include <stdio.h>
#include <Windows.h>
int main(void){
int i ;
for (i = 0; i < 5; ++i){
printf("吃第%d个饺子\n",i+1);
Sleep(1000);
}
printf("吃饱了\n");
return 0;
}
for和while的选择,只有当已经明确循环次数的时候,建议使用for,其它情况可以使用for也可以使用while,建议使用while
- do-while循环
极特殊情况下用此循环,为了弥补while、for循环不足的地方
先执行一次循环体,然后再判断条件,以判断是否继续下一轮循环:至少执行一次循环体
do{循环体}while(条件)
#include <stdio.h>
#include <Windows.h>
int main(void){
int i ;
i = 0;
do{
printf("吃第%d个饺子\n", i+1);
i++;
} while (i < 5);
printf("吃饱了\n");
return 0;
}
do{} while(0)用法,主要用于#define宏定义中
练习题:金字塔
#include <stdio.h>
int main(void){
int n,i,j;
printf("请输入金字塔的层数:");
scanf("%d", &n);
for (i = 1; i <= n; i++){
for (j = 1; j <= n - i; j++){
printf(" ");
}
for (j = 1; j <= 2 * i - 1;j++){
printf("%d",i);
}
printf("\n");
}
return 0;
}