逻辑运算符

2008-02-23 05:29:41来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

一、逻辑运算符

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 语句的条件为真时,则执行其下的“一条语句/复合语句”,然后退出整个

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Dev-C 调试方法简明图文教程

下一篇: if 语句嵌套