一、逻辑运算符
C 语言提供了三个逻辑运算符:
运算符 | 含义 | 学名 | 结合律
--------------------------------------------
&& | 并且 | 逻辑和 | 从左到右
--------------------------------------------
|| | 或 | 逻辑或 | 从左到右
--------------------------------------------
! | 非 | 逻辑非 | 从右到左
--------------------------------------------
下面我们通过一个简单的例子来学习这三个运算符。
/*--------------------------------------------------------------
| 作者: Antigloss @ http://stdcpp.cn @ 蚂蚁的 C/C 标准编程
|
| 功能: 演示 &&、|| 及 ! 的用法
-------------------------------------------------------------*/
#include <stdio.h>
int main(void)
{
int i_num;
printf("Please enter an integer: ");
scanf("%d", &i_num);
if ( !i_num ) /* 效果等同于 i_num == 0 */
{ /* 假如用户输入 0 */
printf("i_num got a value of zero.\n");
}
else if ( i_num >= 1 && i_num <= 9 )
{ /* 假如用户输入介于 1 到 9 之间(包括 1 和 9)*/
printf("i_num is between 1 and 9, inclusive.\n");
}
else if ( i_num < -9 || i_num > 9 )
{ /* 假如用户输入小于 -9 或大于 9 */
printf("i_num is less than -9 or greater than 9.\n");
}
else
{ /* 其他情况 */
printf("i_num is between -9 and -1, inclusive.\n");
}
return 0;
}
程式重点:
1. !i_num
假如 i_num 的值不为零,则 !i_num 为假;假如 i_num 的值为零,则 !i_num 为真。
也就是说,! 的作用是把真变为假,把假变成真。
2. i_num >= 1 && i_num <= 9
只有 i_num >= 1 和 i_num <= 9 同时为真,该表达式的值才为真。
3. 别以为 i_num >= 1 && i_num <= 9 能够像数学里那样写成 9 >= i_num >= 1 或
1 <= i_num <= 9。以 9 >= i_num >= 1 为例,由于关系运算符是从左到右进行结合的,
所以该表达式等同于 (9 >= i_num) >= 1。当 9 >= i_num 为真时,则该表达式为
1 >= 1,其值为真;当 9 >= i_num 为假时,则该表达式为 0 >= 1,其值为假。
4. i_num < -9 || i_num > 9
只要 i_num < -9 和 i_num > 9 当中有一个为真,该表达式的值就为真。
5. if else if ... else if ... else
也许您现在对 if else if ... else if ... else 这种用法仍然不太了解,觉得难以理解。
不用担心,其实很简单,上面的代码我们能够改写成:
if ( !i_num ) /* 效果等同于 i_num == 0 */
{ /* 假如用户输入 0 */
printf("i_num got a value of zero.\n");
}
else
{
if ( i_num >= 1 && i_num <= 9 )
{ /* 假如用户输入介于 1 到 9 之间(包括 1 和 9)*/
printf("i_num is between 1 and 9, inclusive.\n");
}
else
{
if ( i_num < -9 || i_num > 9 )
{ /* 假如用户输入小于 -9 或大于 9 */
printf("i_num is less than -9 or greater than 9.\n");
}
else
{ /* 其他情况 */
printf("i_num is between -9 and -1, inclusive.\n");
}
}
}
怎么样,是不是容易理解多了?但是,习惯上,我们会采用前一种写法。其实,假如您习惯了
前一种写法,会觉得前一种写法更容易理解。if else if ... else 的基本结构为:
if ( condition1 )
一条语句/复合语句
else if ( condition2 )
一条语句/复合语句
else if ( condition3 )
一条语句/复合语句
... ...
else if ( conditionN )
一条语句/复合语句
else
一条语句/复合语句
其执行流程如下图所示:

从这个图中我们能够清楚地看出,当条件为假时,程式会跳到下一条 if 语句,直到条件成立
为止。当某个 if 语句的条件为真时,则执行其下的“一条语句/复合语句”,然后退出整个
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




