分支循环语句--循环语句

接上篇“分支循环语句--分支语句”

引入:如果要在屏幕上打印出十个“你好”,是不是就是像这样,写十个printf语句呢?

printf("你好\n");
printf("你好\n"); 
printf("你好\n");
printf("你好\n");
printf("你好\n");
printf("你好\n");
printf("你好\n");
printf("你好\n");
printf("你好\n");
printf("你好\n");

那这样未免也太麻烦了!有没有什么办法,能够简化这种结构相似功能相同的代码呢?

答案就是我们今天要讲的循环语句!

1.while循环语句

1.1 基本结构

while(表达式){语句块}-------------当表达式的值为真时,一直执行语句块中的内容,直到条件改变导致表达式的值为假,不再执行。

1.2 执行流程

示例如下:(使用while循环在屏幕上打印十个你好)

#include<stdio.h>
int main()
{
     int a = 1;//初始化
     while (a <= 10)//判断
    {
        printf("你好\n");
        a++;//调整
    }
}
return 0;

在上述的while循环中,可以将代码看成三个核心部分:一是对条件的初始化,即语句a=1;

二是对条件的判断,即while后括号中的判断语句a<=10;三是对条件进行调整,即执行的代码块中的a++。可以看到结果如下:

1.3 实战举例

练习:输入一个正整数,在屏幕上逆序打印出每一位数

#define _CRT_SECURE_NO_WARNINGS 1	
#include<stdio.h>
int main()
{
   
    //输入一个整数,在屏幕上逆序打印出每一位数
    int a = 0;//初始化
    scanf("%d", &a);
    while (a)//判断
    {
        printf("%d ", a % 10);//获得最后一位数并打印在屏幕上
        a /= 10;//调整
    }
    return 0;
}

现在,相信你已经对while循环有了一个清楚的认识

有没有什么语句,可以把上述提到的三个条件再简化合并呢?那就要继续学习我们的for循环了!

2. for循环语句

2.1 基本结构

for(表达式1:初始化; 表达式2:判断;表达式3:调整){代码块}

2.2 执行流程

示例如下:(使用for循环打印输入十个“你好”)

#include<stdio.h>

int main(){
    for (int i = 1; i <= 10; i++)
        printf("你好\n");
    return 0;
}

注意,在实际使用中,for循环括号内的三个条件都是可以省略的,这要结合具体问题合理使用~

使用这个简单的for循环,我们就可以在屏幕上打印出来十个“你好”了,是不是大大减少了代码的书写量呢!更加方便简洁!

2.3 实战举例

练习:计算1-100之间3的倍数的和

#define _CRT_SECURE_NO_WARNINGS 1	
#include<stdio.h>
int main()
{
    //计算1-100之间3的倍数的和
    //产生1-100-----使用for循环
    //判断3的倍数     i%3 == 0
    int sum = 0;
    for (int i = 1; i <= 100; i++)
    {
        if (i % 3 == 0)
            sum += i;    //如果是3的倍数,就进行累加
    }
    printf("%d\n", sum);
return 0;
}

得到结果如下

3. do-while循环语句

3.1 基本结构

do        

                {代码块}

while(表达式);

程序会先执行一次代码块中的内容,然后再进行判断,若表达式的值为真,继续执行语句块;反之则不再执行,直接退出循环

3.2  执行流程

实例如下:(使用do-while循环打印十个你好)

#include<stdio.h>
int main()
{
    int a = 0;
    do
    {
        printf("你好\n");
        a++;//调整
    } while (a < 10);//判断
    return 0;
}

要注意:while的括号后是有一个分号的!!不然程序会报错~

3.3 实战举例

练习:输入一个整数,判断这个整数是几位数?

#define _CRT_SECURE_NO_WARNINGS 1	
#include<stdio.h>
int main()
{
    int a = 0;
    scanf("%d", &a);
    int count = 0;//用来统计数位
    do
    {
        count++;//既然已经输入了一个数,这个数最少都有一位
        a /= 10;//调整
    } while (a);//判断
    printf("%d\n", count);
    return 0;
}

运行结果如下:

但是在实际使用中,由于一定会先将循环体内的语句执行一次,这样的问题其实是比较少的,所以do-while循环的使用不如while循环和for循环多。

4. break和continue语句

和在上篇推文的switch语句中提到的break类似,这里的break和continue也是这个循环体的出口,用于结束循环,但是具体还有区别~

break:这个单词的中文意思是“休息,中断”,在循环语句中,用于结束整个循环

continue:这个单词的中文意思是“持续,继续”,在循环语句中,单层循环遇到continue时后面的代码不再执行,直接继续下一次循环

废话不多说,直接上代码分析!

#include<stdio.h>
int main()
{
    int i = 0;
    for (; i < 10; i++)//三条件可以放在代码其他不影响使用的部分,但是仍然要有分号
    {
        if (i == 5)
            break;//遇到break直接结束了for循环
        printf("%d ", i);
    }
return 0;
}

上述代码中,当i=5时,遇到了break,于是直接结束了for循环,只在屏幕上打印出来0-4

换成continue呢?

#include<stdio.h>
int main()
{
    int i = 0;
    for (; i < 10; i++)//三条件可以放在代码其他不影响使用的部分,但是仍然要有分号
    {
        if (i == 5)
            continue;//不再执行后面的代码,直接进入下一次循环
        printf("%d ", i);
    }
return 0;
}

在上述代码中,当i=5时,遇到了continue,于是后面的代码不再继续执行,直接进入下一次循环,i++让i变成了6,继续在屏幕上打印

看到这里,相必你对循环语句也有了更深入的理解吧!快去实战练习一下吧!

                                                     完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值