C语言的分支与循环个人总结(终)

        Hello小伙伴们下节分支与循环来啦!

do while语句

        在循环中do while循环运用的相对比较少。

do

        语句;

while(表达式);

上期讲到while和for循环这两种循环都是先判断,如果条件满足才进入循环,执行下列的语句,如果不满足表达式就直接跳出循环。

而do while则是先进入循环体,执行一次,在进行表达式的判断,若判断为真则继续循环,若表达式为假,则循环结束,跳出循环。do while循环与其它循环不一样的地方就是,不管它的表达式判断结果是为真还是为假,它都会先执行一次语句,在进行判断,这就是不同的地方。

用代码更直观的表达清楚吧!

#include <stdio.h>
int main()
{
    //设置一个整型变量,给它赋值一个0,为假的值
    int flag = 0;
    do
    {
        printf("hehe\n");
    }while(flag);
    //输出结果就是,屏幕打印一次hehe后循环直接结束
    //反之while的表达式为真的话,死循环打印hehe    
    return 0;
}

​

        小试牛刀:输入一个正整数,算算他有几位用while循环来实现~

//输入一个正整数,算算他有几位用while循环来实现
#include <stdio.h>
int main()
{
    int conunt = 0;
    int i =0;
    scanf("%d", &i);
    do
    {
        count++;
        n = n / 10;
    }while(n)
    printf("%d", count);
    return 0;
}

break和continue语句

        在循环执行的过程中,若果发生某些状况,需要提前终止循环,这是非常常见的现象。

        break:的作用是永久终止循环,直接跳出循环,执行下面的语句。

        continue:continue是跳过本次循环continue后面的代码,在for循环和while循环中有所差异。

while循环中的break:

#include <stdio.h>
//打印0到9的数字,当i等于5时循环结束
int main()
{
    int i = 0;
    while(i<10)
    {
        if(i==5)
        break;
        printf("%d ", i);
        i++;
    }
    return 0;
}

while循环中的continue:

#include <stdio.h>
//用while循环输出0到9的数字。
int main()
{
    int i = 0;
    while(i<10)
    {
        if(i==5)
        //当i等于5的时候,跳过continue后面的代码,所以输出到4之后,就陷入了死循环
        continue;
        printf("%d ", i);
        i++;
    }
    return 0;
}

for中的break:(与while循环中的一致)

#include <stdio.h>
//用for循环输出1到10的数字
int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
        if(i==5)
        //当i等于5的时候执行break语句,直接跳出循环,输出1,2,3,4
        break;
        printf("%d ", i);
    }
    return 0;
}

for循环中的continue语句:(与while有所不同)

#include <stdio.h>
//用for循环打印1到10的数字
int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
        if(i==5)
        //当i等于5的时候,跳过continue后面的代码,输出不会输出5
        continue;
        printf("%d ", i);
    }
    return 0;
}

        for循环中的continue和while循环中的continue,的不同之处小伙伴们了解了吗?他们的相同之处都是当判断表达式成立时,跳过continue后面的语句,while中的是跳过了printf和i++所以它执行到4的时候就出现死循环了,而for中的只是跳过printf不打印5,但是我的i++依旧执行。

        do while中的break和continue与while中的一致,小伙伴可以自行测试一下哦~

循环的嵌套

        目前我们已经把三种循环都讲解了一遍,当然循环的嵌套可以在写代码帮助我们更好的解决难题。题目找出100~200之间的素数,并打印在屏幕上。素数又叫质数,它只能被1和它本身整除。代码实现如下:

#include <stdio.h>
int main()
{
    int i = 0;
    int count = 0;
    for(i=100; i<=200; i++)
    {
        int flag = 1; //设flag为1时是素数
      //素数只能被1和它本身整除,那么取值就为2~i-1
        int j = 0;
        for(j=2; j<=i-1; j++)
        {
            //当输入的数值能够被2~j-1的数字整除为0的时候,那么它不是素数,遇到break则跳出循环
            if(i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if(flag == 1)
        {
            printf("%d ", i);
            count++;
        }
    }
     printf("count=%d\n", count);
    
    return 0;
}

goto语句

        C语言提供了一个特别的语法,那就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。如代码所示:

#include <stdio.h>
int main()
{
    printf("hehe\n");
    goto yes;
    printf("hello world\n");
 yes:
    printf("haha\n");
//输出的结果就是printf只打印hehe和haha,不打印hello world,跳过中间的代码
    return 0;
}

当然我们尽量在使用goto语句的时候,尽量不要使用太多,稍有使用不当会照成不可预知的后果,或导致在函数内随意的乱跳动,当然在使用多重循环的时候,用break要使用很多个,这里直接使用goto语句用来跳出循环,是最方便的啦。

        今天的就把循环与分支都介绍完啦。谢谢小伙伴们的观看,欢迎在评论区留言~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值