C语言——选择语句

选择结构指的是进行逻辑判断,当满足与某些条件的时候才会执行某些语句。

C语言包括两类选择语句,if语句和switch语句。

  • if语句

if语句通过测试表达式的值从两种选项中选择一种,if语句的一般形式为:

if (表达式) 
    语句
else

    语句


其中表达式的括号是必须的。

if语句的执行步骤是先计算括号内表达式的值,如果表达式的值非零,则结果为真,执行圆括号后面的语句。

(C语言中0为假,非0为真)

      注意区分关系运算符中的==和赋值运算符,因为在C语言中两则可以同时作为if语句的表达式但具有完全不同的意义,出现这种情况时gcc编译器在开启-Wall选项会产生警告。

这里来区分一下==和=

  • “=”并不等于符号,而是赋值操作符,如 x=3。除此之外,还可以在一个语句中向多个变量赋同一个值,即多重赋值。例如,在下面代码中把 0 同时赋给 x、y 与 z。
  x = y = z = 0;
  • 相对于只有一个等号的赋值操作符,关系操作符中的等于操作符采用两个等号“==”来表示。

看个例子

看起来是不是在比较X和Y的大小?

但是=是赋值符号,这样在if语句里等于直接将Y赋值给了X!

怎么修正错误呢?

只需要将=换成==就可以进行判断了。

 

if语句中可以包含else子语句,表示在圆括号内的表达式值为零时,执行else后面的语句,其基本形式如下:

if (表达式) 
    语句 
else 
    语句


if 语言内部的语句可以是C语言支持的任何类型的语句,包括if语句本身,并且对嵌套层次没有限制。内部语句通常采用缩进形式。当嵌套层次造成程序混乱,像在表达式中使用圆括号一样使用大括号{}。

当在else语句的子语句中嵌套另一个if语句时,一般不对它进行缩进,而是把每个else都与最初的if对齐,形成级联式if语句的书写形式,这种形式可以避免判定数量过多时造成的过度缩进问题,同时也更清晰地显示这是一连串的判定:

if (表达式)
    语句
else if (表达式)
    语句
else if (表达式)
    语句
else 
    语句

 

来个例子

 我们平时只要注意格式即可

注:if或者else的括号后没有;    千万别忽略了!


  • switch语句

在编程中,常常需要把表达式和一组值相比较,从中找到匹配项,执行相应的语句。

级联式if语句可以实现这个需求,但是对于整型的表达式值和可选项来说,C语言提供了switch语句。switch语句比级联式if更易读,并且执行速度往往比较快。 

它的基本形式如下:

switch (表达式)

{

case 常量表达式: 多条语句

...

case 常量表达式: 多条语句

default: 多条语句

switch语句由以下三部分组成:

  • 控制表达式                                                                                                                         switch后面跟的由圆括号括起来的整型表达式称为控制表达式,该表达式的结果必须是整型或是字符型。
  • 情况标号                                                                                                                                   每一种情况以case 常量表达式 :开始,常量表达式不能包含变量及函数调用,且结果必须为整数值。case后面只能跟一个常量表达式,但多个情况标号可以放在同一组语句前面,表示对多组情况执行同一组语句。
  • 语句                                                                                                                                         情况标号后面可跟任意数量的语句,不需要用大括号把这些语句括起来,且最后一条语句通常是break语句。在switch语句中,执行break语句时,程序会跳出switch语句,而继续执行switch语句后面的语句。忘记’break’语句,程序就会继续执行下面情况的语句,也是编程时常犯的错误。 

举个例子: 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值