C语言学习笔记--分支语句if和switch

 if语句

单分支语句

 if(表达式)

 {

    语句;  //表达式为真,执行此语句

 }

双分支语句

if(表达式)

 {

   语句1;//表达式为真,执行此语句

  }else

 {

    语句2;//否则执行语句2

 }

多分支语句

 if(表达式)

 {

   语句1;//表达式为真,执行此语句

 }

 else if(表达式)

 {

  语句2;//第一个表达式为假,第二个表达式为真,执行语句2

  }

  else

  {

  语句3;//两个表达式都为假,执行语句3

  }

 else 和if的匹配原则

 就近匹配原则

 代码中的else 匹配到的是第二个if

所以第一个if可以认为它是一个但分支结构

 因为a不等于1,条件为假,所以无任何回显

 如果想按第一个if语句为双分支结构的话,添加{}

如下:

 所以个人建议,在编写代码的过程中充分利用好{}来区分代码块

 

下面这段代码,一个等号表示赋值,并不表示判断  

两个等号才表示判断

而且建议判断的时候这样写:常量 == 变量,就像下面这段代码一样。

即使少写了一个等号,那也会在编译的时候报错,而不会等编译完之后才发现。

输出1-100之内的奇数 ,下面两段代码都可以

 switch 分支语句

而如果不带break的话,结果是下面这样的,因为case 只判断入口,而break是用来判断出口的。

 没有break,会从入口执行到程序尾部,所以需要break 来跳到switch语句之后。

而break视情况加,由代码的逻辑而定。
 

 而且switch判断的只必须是整型,不然会报错的

case只能是整型常量表达式

 case 后面跟变量也是不行的

 可以看到,在这里我们规定了1-7 ,七个入口。但是如果输入的值超过了7,那么这段代码该如何处理呢

如下:

没有任何显示,因为在switch这个语句中并没有规定8的入口。

所以我们要在switch语句中加上一个default,如果在switch语句中没有匹配到入口点,那么就走default这条“路”

最后讲师出了个练习题,看一下m和n的结果,很简单,可以自己试一下。

int main()

{

int n = 1;

int m = 2;

switch (n)

{

case 1: m++;

case 2: n++;

case 3:

switch (n)

{

case 1: n++;

case 2: m++; n++; break;

}

case 4:m++;

default:

break;

}

printf("m=%d,n=%d\n", m, n);

return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Zker_WH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值