第3章
3.1 关系运算符和逻辑运算符
关系运算符
<、<=、>、>= 左端小于、小于等于、大于、大于等于右端时返回值为1,否则为0
==、!= 左端等于、不等于右端时返回值为1,否则为0
运算符亦具有优先级,第一行中的运算符优先级大于第二行。同一行中的运算符具有相同的优先级。
例子 |
名称 |
结果 |
$a and $b |
And(逻辑与) |
TRUE,如果 $a 与 $b 都为 TRUE。 |
$a or $b |
Or(逻辑或) |
TRUE,如果 $a 或 $b 任一为 TRUE。 |
$a xor $b |
Xor(逻辑异或) |
TRUE,如果 $a 或 $b 同位相异。 |
! $a |
Not(逻辑非) |
TRUE,如果 $a 不为 TRUE。 |
$a && $b |
And(逻辑与) |
TRUE,如果 $a 与 $b 都为 TRUE。 |
$a || $b |
Or(逻辑或) |
TRUE,如果 $a 或 $b 任一为 TRUE。 |
(本表来源于百度百科,C语言中异或的写法为“^”)
3.2 运算符的优先级
四则运算符>关系运算符>逻辑运算符
逻辑运算符中,优先级为“非”>“与”>“异或”>“或”(之后出一个专门的表来说优先级)
3.3 条件语句
(1)条件语句有两种,第一种是if语句,第二种是if else语句。
句法格式如下:
if (<表达式>) <语句>
在这个语句中,表达式描述后面的语句可以执行的条件。括号内表达式非0时,条件为真,否则为假。如果为真则执行语句,否则不执行。
一个例子:
if (a%2==0) printf(“%d是偶数\n”,a); if (<表达式>) <语句1> else <语句2> if (a%2==0) printf(“%d是偶数\n”,a); else printf(“%d是奇数\n”,a);
(2)如果一个语句不满足我们的需要,我们就要使用复合语句。
下面是一个例子:
{ double a,b; a=x+y; b=x-y; z=a*a+b*b; }
之前例子中的<语句>、<语句1>、<语句2>都可以使单条语句,也可以是复合语句。
不仅如此,我们还可以对条件语句进行嵌套(不再举例)和级联:
if (表达式1) 语句1 else if (表达式2) 语句2 … else 语句n+1
(3)还有一类运算符叫做条件运算符,即形如“?:”的三元运算符。由条件运算符及其运算对象构成的表达式被称为条件表达式。语法格式如下:
<表达式1>?<表达式二>:<表达式3>
当表达式1为真时计算表达式2的值作为条件表达式的值,否则计算表达式3的值作为条件表达式的值。
3.5 switch语句
switch语句是一种多路选择的分支结构,语法格式如下:
switch(<控制表达式>){ case <常量表达式1>:语句序列1 case <常量表达式2>:语句序列2 ... case <常量表达式n>:语句序列n default:<语句序列n+1> }
default及其所对应的语句序列是可选项,任何一个case所对应的语句序列也可以为空,每个常量表达式的类型必须是整形且各不相同。default后面的语句会在控制表达式的值未在任何一个case中出现时执行。