第七章 循环语句

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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值