C语言流程控制语句(C语言三)

一.流程控制语句

1.概念

C语言语句的执行默认顺序执行(从上往下依次执行),编程语言一般除了默认的顺序执行以外,还提供分支执行和循环执行的语法

C语言中三种流程控制结构

2.分支结构

(1)if语句

if语句可以实现分支,作用是从几组无关的语句中选择一组来执行

if语句通过一个逻辑表达式的结果来选择一组语句执行

语法:

if(逻辑表达式){ 
    语句;//如果只有一行,可以省略大括号

}

逻辑表达式为真,执行大括号中的语句,为假则不执行

如果有多组if语句,希望最多只执行其中一组可以用else将if语句连接

if(逻辑表达式1){
语句;
}
else if(逻辑表达式2){
语句;
}
else if(逻辑表达式3){
语句;
}

如果希望if语句任何时候都一定会执行其中一组,可以省略最后一个if和逻辑表达式

if(逻辑表达式1){
语句;
}
else if(逻辑表达式2){
语句;
}
else{
语句;
}

(2)switch…case语句

switch … case也可以实现分支,和if语句不一样的地方在于,switch…case通过算数表达式的值来决定分支的选择

由于switch…case语句的跳转效率高于if…else语句,在分支较多的情况下选择使用switch…case语句

语法:

switch(算数表达式){
case 值1:
    语句;
    break;//跳出switch...case
case 值2:
    语句;
    break;
case 值3:
    语句;
    break;
default://以上值都不满足的情况
    语句;
}

3.循环结构

循环结构的作用是让一组语句反复执行,能够将程序中多次出现的语句合并然后多次执行

(1)for语句

for语句是一种实现循环的语句

语法:

for(循环变量初始化;循环结束条件;每次循环对循环变量的操作)
{
循环语句;
}

循环变量的初始化就是给循环变量赋初始值,设置循环开始变量的值

循环结束条件是一个逻辑表达式,为真继续循环,为假退出循环

每次循环对循环变量的操作通常是修改循环变量,让循环一定次数后导致循环条件不成立

循环语句就是每次循环要执行的语句

除了循环条件不成立可以让循环退出以外,也可以使用break退出所在循环,一旦遇到break语句,循环立即结束,不再往下执行

在循环结束后可以通过判断循环条件是否为真来区分循环是条件不成立退出还是break退出

当循环条件为真 --------- break退出

当循环条件为假 --------- 循环条件不成立退出

在循环中使用continue关键字可以将本次循环之后语句跳过,直接开始下一次循环

for循环的执行顺序,假设有如下语句

for(1;2;3)
{
    4
}

它按照如下顺序执行:

[1,2] [4,3,2] [4,3,2] [4,3,2]…

正常情况下(没有break)循环在两组之间结束,每一组的最后一步判断循环条件是否为真,为真执行下一组,为假退出循环

正常结束循环条件一定为假,如果开始循环条件为假,循环有可能一次都不执行

for循环的多种写法

a.for循环的循环语句只有一条,可以省略大括号

b.小括号中的每一部分可以写多条语句,多条语句之间用,连接(结束条件要写到最后)

c.C99规范可以在for内部声明循环变量,这个时候循环变量只能在循环内部使用(编译加-std=c99)

d.小括号三个部分都可以省略,如果不写退出条件,退出条件就永远为真,循环就永不退出,这种循环叫死循环

e.for的死循环通常写成小括号内为空,省略小括号三部分,分号不能省略

    for(;;){//死循环

        ....

    }

f.如果省略for语句的循环语句,就变成空循环,大括号可以省略,但是需要在小括号后加分号

    for(....);

(2)while循环

while语句也可以实现循环,while语句是通过判断一个逻辑表达式的值来控制循环执行

语法如下:

while(逻辑表达式)
{
循环语句;
}

for循环和while循环完全可以互相代替

while循环的执行顺序,假设有如下语句:

while(1){

    2

}

按照如下顺序执行

[1] [2,1] [2,1] [2,1]…

每一组最后的逻辑表达式为真,继续下一组,为假,退出循环

while循环有可能一次都不执行

当while语句中的逻辑表达式永远为真,while循环变为死循环,while死循环通常以下写法

while(1){
    ....
}

while语句也有空循环,省略循环语句体,在小括号加分号

while(1);

while中break ,continue的用法和for语句中完全一样

(3)do…while循环

语法:

do
{
循环语句;
}while(逻辑表达式);

do…while和while的区别在于do…while先执行循环语句,在判断循环条件

do…while语句至少循环一次

do…while语句的执行顺序,假设有如下语句:

do{

    1

}while(2);

按照以下顺序执行

[1,2] [1,2] [1,2]…

相当于去掉while中第一组语句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java.L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值