在我们写的函数中可以有多条语句,但这些语句总是从前到后顺序执行的。除了从前到后顺序执行之外,有时候我们需要检查一个条件,然后根据检查的结果执行不同的后续代码,在C语言中可以用分支语句实现,比如:
if (x != 0) {
printf("x不等于0!\n");
}
其中x != 0表示“x不等于0”这个条件,这个表达式称为控制表达式如果条件成立,则{}中的语句被执行,否则{}中的语句不执行,直接跳到}后面。if和控制表达式改变了程序的控制流程,不再是从前到后顺序执行,而是根据不同的条件执行不同的语句,这种控制流程称为分支。上例中的!=号表示“不等于”,像这样的运算符有:
关系运算符和相等性运算符
运算符 |
含义 |
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
在使用上面这些运算符时需要注意:
1、这里的==表示数学中的相等关系,相当于数学中的=号,初学者常犯的错误是在控制表达式中把==写成=,在C语言中=号是赋值运算符,两者的含义完全不同。
2、如果表达式所表示的比较关系成立则值为真(True),否则为假(False),在C语言中分别用1和0表示。例如x是-1,那么x>0这个表达式的值为0,x>-2这个表达式的值为1。
3、在数学中a<b<c表示b既大于a又小于c,但作为C语言表达式却不是这样。以上几种运算符都是左结合的,请读者想一下这个表达式表示什么?
4、这些运算符的两个操作数都应该是相同类型的,例如两边都是字符型、都是整型或者都是浮点型,但不能比较两个字符串,以后我们会介绍比较字符串的方法。
5、==和!=称为相等性运算符(EqualityOperator),其余四个称为关系运算符(Relational Operator),相等性运算符的优先级低于关系运算符。
用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。
1、基本形式:if
if(表达式) 语句
<