C/C++控制流程(10)

程序三大结构:顺序、分支、循环

顺序执行一次(必须执行),分支可能执行一次或者不执行,循环重复执行多次也可能不执行。

复合结构程序设计是编程解决实际问题的入门,其实就是这三大结构的相互嵌套。

语句

C/C++的语句包括:定义(申明)语句,表达式语句,函数调用语句、空语句、复合语句等

定义语句是对变量的定义或者对所调用的函数进行申明,原则是“先申明,后使用”;

表达式语句则是前面的算术、关系、逻辑等等表达式,与数学的语法有一些不同的点,比如  2a  要写成 2 * a ,4ab要写成 4 * a * b,并且没有中括号大括号,全部都由小括号来完成优先级。

C语言的系统函数调用,包括数学库(math.h)、标准输入输出库(stdio.h)、字符串(string.h)、标准库(stdlib.h)等等,C++中可以继续使用相应的C语言函数,也提供了自带的一些系统函数库。

空语句就是一个分号 ; 没有具体的语法功能,主要用于什么事情都不做(比如空循环100次)或者暂时不清楚写什么留一个位置。要注意的是:空语句在语法上也是一条语句!

复合语句:把多条语句用大括号包含起来,就是复合语句了。这时候多条语句在语法上等价于一条语句,主要应用于循环体、分支体的设计。(如果没有复合语句,那么循环体该如何界定呢?)另外,在复合语句中也可以定义变量,这些变量的作用域则局限于复合语句体内。

分支结构

1、单分支,语法:

       if(表达式) 语句;

     表达式为真,执行语句,否则不执行。要注意的是:表达式可以是关系或者逻辑表达式,也可以是其他表达式,按照 非0即真 的规则来判断;语法上,分支语句是单条语句,如果需要多条语句,那么需要使用复合语句

      int x=2;  if  (x)   {   x+= 2;  x *=3;}    

 if(x)  等价于 if(x != 0)  分支语句有两条,需要通过复合语句(大括号括起来)来完成。

2、双分支,语法:

    if(表达式)   语句1;    else 语句2; 

表达式为真,执行语句1,否则执行语句2,二选一,要注意的是:else 是不带表达式的,是在前面if表达式不满足(否定该情况)前提下执行语句2.

3、多分支,语法:

   if(表达式1)   语句1;    else if(表达式2)  语句2;    else if(表达式3)  语句3;  ...   ;  else 语句n;

双分支可以理解为两段函数,多分支则是多段函数.

以上各分支都是单条语句,所以没有用大括号组成复合语句。另外也没有对大于100,小于0等特殊情况进行分析。

4、混合的多分支,规则是:else 总与前面最近的未配对 if  配对,除非有小括号。

配对关系通过缩进应该是一目了然,当然逻辑性比上面的例子差很多。下面把缩进关系去掉后就更加不好理解了

所以良好的代码书写习惯对程序的理解是有帮助的。记得(ALT+F8)

5、switch语句,语法:

switch(表达式)
{
   case 表达式1:
        语句组1...
        break;
   case 表达式2:
        语句组2...
        break;
   case 表达式3:
        语句组3...
        break;
   ...
   default:
        语句组n...
        break;
}

计算表达式的值,查找每个case的表达式,如果找到相等的,即获得入口,从入口处执行完所有语句,除非遇到break跳出,如果找不到,则执行default 默认语句组 。

注意点:switch表达式必须为:整数、字符或者枚举;每个case 的表达式可以是常量或者常量运算符组成的表达式(不能是变量),不能重复;

 case 10也可以写成case 9+1,不包含变量即可。default  语句并非一定要放到最后,语法上只要所有case都不满足则执行它。break语句也非强制使用,甚至很多时候不用,比如上面的多个case共用同一组操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

易老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值