C语言基础(四)选择结构与循环结构

C/C++支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构

顺序结构:程序按顺序执行,不发生跳转

选择结构:依据条件是否满足,有选择的执行相应功能

循环结构:依据条件是否满足,循环多次执行某段代码

接下来我们依次讲解这三种结构

选择结构

if语句

if语句的三种形式:

单行格式if语句: if(条件){ 条件满足执行的语句 }

多行格式if语句: if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 }

多条件的if语句:if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}else{ 都不

满足执行的语句}​​​​​​​

if后面的小括号中,放的是表达式,表达式会存在结果,ture或false,用来判断是否满足条件

如果表达式的结果是ture则进入if语句的代码块中,进行运行代码

如果表达式的结构是false,由else if则进入该条件语句进行进一步判断,否则则进入else语句的代

码块进行执行

单行格式if语句

bool flag = ture;                           

if(flag)

{

    printf("if\r\n");
}

​​​​​​​多行格式if语句

bool flag = ture;                           

if(flag)

{

    printf("if\r\n");
}

else

{

    printf("else\r\n");

}

多条件的if语句

int flag = 2;                           

if(flag == 1)

{

    printf("if 1\r\n");
}

else if (flag == 2)

{

    printf("if 2\r\n");

}

else if (flag == 3)

{

    printf("if 3\r\n");

}

else

{

    printf("else\r\n");

}

switch语句

switch 语句的表达式是一个整数,根据整数执行相应的分支,常用于执行多条件分支语句

int nFalg = 2

switch(nFalg) 此时将会执行case2分支语句

{

case 1:

{

    printf("case 1\r\n"); 

    break;

}

case 2:

{

    printf("case 2\r\n");

    break;

}

case 3:

{

    printf("case 3\r\n");

    break;

}

case 4:

{

    printf("case 4\r\n");  

    break;

}

default:

{

    printf("default\r\n");

    break;

}

}

break 跳出代码块

default 缺省分支,其他分支

注意1:switch语句中表达式类型只能是整型或者字符型

注意2:case里如果没有break,那么程序会一直向下执行

总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以

判断区间

循环结构

while循环

while的循环也是根据表达式的结果进行判断的,如果该表达式的结果为真,就执行循环语句

int nIndex = 0;

while(nIndex <= 100)

{

    if(nIndex == 50)

{

    break;

}

    printf("Hello %d\r\n",nIndex);

    nIndex++;

}

运行到nInedx == 50时 程序结束

int nIndex = 0;

while(nIndex <= 100)

{

    if(nIndex == 50)

{

    continue;  跳出当次循环

}

    printf("Hello %d\r\n",nIndex);

    nIndex++;

}

注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环

do while循环

该循环语句的语法为:do{ 循环语句 } while(循环条件)

do while循环会先执行一次循环语句,再进行判断循环条件,如果条件为ture,则执行循环语句

int nFalg = 0;

do

{

    nFalg++;

    printf("%d\r\n",nFalg);

}while (nFalg > 0);

无论条件是否成立,先进入循环运行一次

for循环

语法: for(起始表达式;条件表达式;末尾循环体) { 循环语句; },注意:隔开

如果满足循环条件,执行循环语句

for (size_t i = 0; i < 100; i++)  

{

    printf("%d\r\n",i);

}

相当于

int i = 0;

while (i < 100 )

{

    i++;

}

嵌套循环

嵌套循环用于循环体中再嵌套一层循环,解决一些实际问题

for (size_t i = 0; i < 100; i++) 

{

    for (size_ k = 0; k < 100; k++)

    {

        printf("%d-%d\r\n",i,l);

    }

}

跳转语句

break语句

break语句用于跳出选择结构或者循环结构

break使用的时机:

出现在switch条件语句中,作用是终止case并跳出switch

出现在循环语句中,作用是跳出当前的循环语句

出现在嵌套循环中,跳出最近的内层循环语句

continue语句

continue语言在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环,此时并

没有将整个循环终止

goto语句

语法:goto 标记

goto语句用于无条件跳转语句,如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

如以下一个例子

int main()

{

    printf("1\n");

    goto FLAG;  程序运行此处,直接跳转到FLAG运行程序

    printf("2\n");

    printf("3\n");

    printf("4\n");

    FLAG:  程序通过goto跳转在此处开始运行程序

    printf("5\n");

    return 0;

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值