循环结构总结

循环结构

while语句

while(表达式)

{

语句块

}

特点是先判断后循环

其中语句就是循环体,当判断为**真(非0)时,则执行循环部分,当判断为假(0)**时,则跳出语句

流程图:

在这里插入图片描述

因此输出十行字母a,利用循环可以轻松实行

#include <stdio.h>
int main()
{
    int i=1while(i<=10)
    {
        printf("a\n");
        i++;
    }
    return 0;
}

i 作为一个判断条件,辅助循环体进行判断,从而控制循环次数

do…while语句

do{

语句块

}while(表达式);

特点是先进行循环一次后判断循环

在这里插入图片描述

同样可以进行输出10行a

#include <stdio.h>
int main()
{
    int i=1;
    do
    {
        printf("a\n");
    }while(i<=10);
    return 0;
}

while与do while的区别

while

#include <stdio.h>
int main()
{
    int i=4,a=1;
    while(i<=3)
    {
        a++;
    }
    printf("%d",a);
    return 0;
}

输出结果为1

do…while

#include <stdio.h>
int main()
{
    int i=4,a=1;
    do
    {
     a++;   
    }while(i<=3);
    printf("%d",a);
    return 0;
}

输出结果为2

在相同语句块和表达式中,两者输出结果不同

所以当第一次判断都为真时,两者执行的结果相同;当第一次判断为假时,while会不进行循环,而do while会至少执行一次循环

并且while语句后面是不用加分号的,但是do while需要在while语句后加分号

for语句

格式:for(表达式1;表达式2;表达式3)

{语句块}

语句类似于while:

表达式1;

while(表达式2)

{语句表达式3}

所以for语句中表达式2类似于判断式,表达式2可以用关系表达式,逻辑表达式,数值表达式,字符表达式,只要值为,即非0就会继续执行循环
在这里插入图片描述

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

ps:表达式1可以省略,但分号不能省略;表达式2也可以省略,类似于死循环;表达式3也能省略;所以for语句是一个比while更全面的循环语句


break和continue

break

break用于结束整个循环,即不再判断;只能用于循环语句中或者switch语句中

例如

#include <stdio.h>
int main()
{
    for(i=1;i<=10;i++)
    {
        sum=sum+i;if(sum>10) break;
    }
    return 0;
}

(当sum的值大于10后就结束循环,break强行结束)

这里的结束循环是指直接跳出for循环,执行for语句后面的任务

continue

continue用于结束单个循环,不再执行以下语句,直接到下一次循环判定,不会结束整个循环

【例】求十以内不能够被3整除的数

#include <stdio.h>
int main()
{
    int i;
    for(i=1;i<=10;i++)
    {
        if(i%3==0) continue;
        printf("%d ",i);
    }
    return 0;
}

输出为 1 2 4 5 7 8 10

循环的嵌套

循环之间可以互相嵌套,内部的叫内层循环,即while语句中加入while,也能while中加入for或者do…while;等效的其他也可以执行相同操作

while()
{
    for(; ; ;)
    {
        do{
            
        }while();
    }
}

三种循环之间可以互相循环嵌套,所以有双重循环或者多重循环

switch语句(选择结构的)

虽然switch不属于循环结构,但可以使用break

switch(表达式)

{

case 常量表达式1: 语句1;

case 常量表达式2:语句2;

…;

case 常量表达式n:语句n;

default :语句n+1;

}

case相当于许多分支,由switch选择进去执行语句,语句块可以不填写。在正常情况下,是会到特定case后,执行完语句后继续执行下面的语句,所以在语句后面加break可以直接使语句结束

注意:

switch语句可以嵌套,也就是在switch语句中的入口处理语句中又包含了switch语句

基本数据类型中的整型类型使用switch,这些类型包括int、char等。并且switch()的参数类型不能为实型,且比如字符型char,unsigned int等,实数型不能自动转换为整形

case具有唯一性,不能在两个case及以上后拥有相同的常量表达式

谢谢观看本次的个人总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值