C语言学习(4)-- 循环语句(for、while、do...while)、goto

第一章 while循环和do...while循环

第一节 while语句 

while(整型表达式){...} ,如果整型表达式为真,即可进入循环体。举例说明:

其中需要注意的是1. break和continue 都只有在循环体中才可以使用。2. break是结束循环,continue是不执行后面语句,重新进入循环,继续循环。

//该现象会进入死循环,因为到了i==5时,下面语句不执行,i始终为5——所以输出1234
    int i = 1;
    while(i <= 10)
    {
        if(i==5)
        continue; //continue后面语句不再继续执行,直接跳回第一条语句继续循环
        printf("%d ",i);
        i++;  
    }

本例中的循环会陷入死循环,主要原因是continue的使用方法。那如果想要改变这样的结果,该如何进行操作呢?读者朋友们可以思考一下。

实际上关键点既然是continue,那就从这个点入手,让i++在continue之前即可,防止continue后无法进行i++。

 int i = 0;  //输出为1 2 3 4 6 7 8 9 10 11
     while(i<=10)
     {
         i++;
         if(i==5)
             continue; 
         printf("%d ",i);    
     }

第二节 do...while语句

do{...}while(整型表达式);

该语句先执行一遍循环体,再进行判断。需要注意的是在使用过程中不能忘记结尾的分号(;),否则会出现语法错误。总而言之,和while语句用法差不多,只是while是先判断再执行,do...while是先执行再判断。

第二章 for循环

1. for (循环变量赋初值; 循环条件; 循环变量增值)
{
    语句;
}

举个例子:

#include<stdio.h>
int main()
{
    int i = 0;
    for( i = 0; i < 10; i ++)
    {
       printf("hehe\n");
    }

    return 0;
}

我们来分析一下这段简单的程序。首先给这个循环变量 i 的初始赋值为0,判断 i < 10 是否成立,如果成立则执行循环体语句,打印hehe,随后i ++ 。此时 i = 1 再次判断 i < 10 是否成立。反复如此,具体的循环过程主要是以下图片所示;如果不成立,则跳出循环。

循环语句最擅长的就是和break、continue等中断循环语句配合使用,从而达到逻辑上的合理。此外,还有一个goto语句也可以实现中断循环的目的。 

第三章 goto语句

goto语句通常搭配again语句实现。一般来说不常用goto语句,容易打破逻辑,而且利用循环语句也可以达到目的,但是对于多重循环的话,goto语句则更有效率。

#include<stdio.h>
int main()
{

for(){
    for(){
        for(){
            printf("...");
            goto again;
            }
        }
    }

again:
    printf("你好!");

return 0;
}

对于这个三重循环来说,想要跳出循环,首先想到的就是用三个break,一层一层跳出;但是如果使用goto语句则可以直接跳出到again所在位置,打印你好。我们可以做一个练习,从中了解到goto语句的具体使用方法。

//*****************关机程序*************
    //cmd关机语句 shutdown -s -t 60
    //cmd取消关机语句 shut down -a 
    char input[20];
    system("shutdown -s -t 60"); //system()--执行系统命令
again:
    printf("请注意你的电脑将在1min内关机。如果输入:我是猪,则取消关机\n请输入>:");
    scanf("%s",input);
    if (strcmp(input,"我是猪") == 0)
    {
        system("shutdown -a");
    }else
    {
        goto again;
    }

// while(1){
//     printf("请注意你的电脑将在1min内关机。如果输入:我是猪,则取消关机\n请输入>:");
//     scanf("%s",input);
//     if (strcmp(input,"我是猪") == 0)
//     {
//         system("shutdown -a");
//         break;
//     }
// }

总结

对循环语句的基本知识和用法都有了些许了解,想要提升编程能力,还是需要自己多多思考和编写,锻炼编程思维,累计大量算法,才能实现质的飞跃。所以接下来也会出一部分练习题,仅供读者参考。



   

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪睡脑子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值