while语句
while(表达式){
语句块
}
如果括号里的表达式为真,则进行语句块的执行,如果为假,则不执行。
必须得有使条件为假的语句,否则就陷入了死循环
#include<stdio.h>
int main()
{
int x=3;
while(x<4)
{
printf("x<4");
}
}
该语句就是死循环语句,因为x=3一直在x<4的范围内,但是如果加上一个语句,就可以变成非死循环。
#include<stdio.h>
int main()
{
int x=3;
while(x<4)
{
printf("x<4");
x++; //加上x++即可
}
}
do-while语句
do-while语句与while语句不同的是,do-while语句先执行一次语句块再进行判断。而while语句是先进行判断再执行语句块
do
循环语句块
while(判断语句);
for语句
for(表达式1;表达式2;表达式3;){
}
系统首先计算表达式1,如果为真,再计算表达式2,为真在计算表达式3.
#include<stdio.h>
#include<math.h>
int main()
{
int x;
for(x=1;x<90;x++){
printf("x的值为:");
}
}
while语句和for语句是可以相互转换的:
for(表达式1;表达式2;表达式3;);
====
表达式1;
while(表达式2){
语句块;
表达式3;
}
如果在程序中已经对变量赋初值,那for循环的表达式可以进行改写:
for(;表达式2;表达式3;){
}
#include<stdio.h>
int main()//判断闰年
{
int x=1000;
for(;x<=2000;x++){
if(x%4==0&&x%100!=0){
printf("闰年为:%d\n",x);
}
else if(x%400==0){
printf("闰年为:%d\n",x);
}
}
}
for循环语句也可以将第二个表达式省略,但省略后是无限制的循环(死循环)
for循环表达式可以将第三个表达式省略,但是省略的表达式要写在语句块里,否则也是死循环。
逗号表达式可以代表两个相同关系的表达式的操作,例如:
for(int x=1,int y=1;x<20,y<30;x++,y++;){
}
while,do-while,for循环都可以在语句块中使用continue和break跳出循环。
循环嵌套
循环的内部还有循环就是循环的嵌套
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=5;i++){
for(j=1;j<=5-i;j++){
printf(" ");
}
for(k=1;k<=2*i-1;k++){
printf("*");
}
printf("\n");
}
return 0;
}
转移语句
break
用于跳出循环,break是结束本次循环并跳出,break不能运用于除switch和循环体其他的C语言语法。如果出现循环嵌套,那么break用来跳出最内层的循环结构。
#include<stdio.h>
int main()
{
while(1){
printf("break");
break;
}
}
continue
用于跳出本次循环,但是不终止循环。
#include<stdio.h>
int main()
{
int l=1;
for(;l<=10;l++){
if(l==1){
printf("最左边屏蔽座位\n");
continue;
}
if(l==10){
printf("最右边屏蔽座位\n");
continue;
}
printf("目前观众坐在第%d列座位\n",l);
}
}