【C语言】第四课:循环语句

【C语言】第四课:循环语句

首先是一个小小的抱歉,第三课的归纳由于笔者较忙,得要延后发布。

本节主要介绍:While,Do,For循环与Break,Continue语句

由于goto语句危险性较大,实用性不强,故不列出

一、 循环的基本结构

{1}While循环:先判断,再执行,用于不知道循环上限的循环

while适用于不知道要循环几次的循环,例如计算用户输入的一组整数的和。
因为你不知道要用户要输入几次整数,这个时候最好的选择是while语句。
语句结构:while(语句1){循环体}
例:

int main(void)
{
     int i = 10;
     while (i >= 0)  //使用while循环时,如果循环体由多个语句组成,请使用花括号标明循环体。
     {
          printf("%d\n", i); i--;       //我的建议是就算while循环的循环体仅有一个语句,也要使用花括号。
     }                                  //一方面用花括号可以让代码变得易于读懂,另一方面这将有助于对程序的修改和优化
     getchar();
     getchar();
     return 0;
}

执行效果:

在这里插入图片描述

语句1输出值应当为0或者1。while函数通过判断语句1的值来决定是否循环。
因此我们可以通过在语句1的位置输入常数“1”来构建死循环

while循环的简单应用:指数表
int main()
{
 printf("请输入一个制表数据上限:");
 int i; int n;
 n = 1;
 scanf_s("%d", &i);
 while(n<=i)
 {
  printf("%10d%10d\n", n, n*n); n++;
 }
 getchar();
 getchar();
 return 0;
}

运行效果:
在这里插入图片描述

{2}do while循环:先执行,再判断

do while语句结构:

do                 //和while循环一样,循环体建议使用花括号标明,不论它是否由多个语句构成
    {
    循环体;
    }
while(判断语句);

判断语句的输出值一样为1或0,如果为1 则程序执行循环体,0则结束循环。
do while循环可以理解为while循环的变体:仅仅是将判断的时序放在了执行的后面
通过一个小小的实验来说明do while循环的“先执行再判断"特性

int main(void)
{
     int i = 10;
     do
     {
          printf("%d\n", i); i--;
     } 
     while (i >= 11);       //i并不满足循环的条件
     getchar();
     getchar();
     return 0;
}

执行效果:程序依旧执行了一次循环体。因为do while循环是先执行再判断的。

在这里插入图片描述

{3}for循环:自增自减,已知的有限次数循环

for循环可以说是c语言中最为灵活的一种循环,它的强大之处对于我们这些初学者而言是无法想象的。
在本节介绍的三种循环体中,for循环是本人认为的最为重要的一种循环
for循环基本语句结构

for(变量定义语句;判断语句;变量变化语句)
    {
        循环体
    }

for循环使用实例

int main() {
 int i, n;
 n = 10;
 for (i = 1; i <= n; i++)
 {
  printf("%d\n", i);
 }
 getchar();//取出之前输入的时候按的回车
 getchar();//等待按键
 return 0;
}

运行效果:
在这里插入图片描述

for循环的几种常用法:

1)循环中i从0增加到n

for(i=0;i<=n;i++)

2)循环中i从0增加到n-1

for(i=0;i<n;i++)

3)死循环

for(;;)

for函数的简单应用:

for循环比较适合已知次数的循环。(需要用户输入的次数n也算已知)
将for循环和if判断语句组合,可以用穷举法写出一个比较简单的素数筛选器。

int main()
 {
     int i, j, b, c;
     printf("请输入数值:");
     scanf_s("%d", &c);
     printf("小于%d的素数如下:", c);
     for (i = 2; i <= c; i++)
     {
          b = 1; 
          for (j = 2; j <= i / 2; j++) 
              if (i%j == 0) 
              { 
                  b = 0; 
                  break; 
              }
          if (b)
          {
              printf("%d ", i);
          }
     }
     getchar();//取出之前输入的时候按的回车
     getchar();//等待按键
     return 0;
}

效果如下:在这里插入图片描述

Break语句与Continue语句:

回头再写,今天晚了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值