汉扬编程 编程大纲 C语言快速入门——逻辑运算

C语言快速入门——逻辑运算

if控制语句允许我们测试一个条件表达式对程序进行分支处理。但如果需要同时满足多个条件时,则需要使用逻辑运算符,C语言提供了3种逻辑运算符。

C语言快速入门——逻辑运算

&&(逻辑与运算)

||(逻辑或运算)

! (逻辑非运算)

加减(+-)运算需要左右两个操作数,如a+b。与此类似,与运算符(&&)与或运算符(||)也需要左右两个条件表达式,这被称为双目运算符,具有从左向右的结合性。如,a&&b,表示先计算a表达式再计算b表达式。赋值运算符(=)用于将右端值赋给左边变量,这被称为右结合性,非运算(!)与之类似,具有右结合性。!0表示非0,即为真。

与运算(&&)与运算是一个并且关系,即当所有条件同时成立时结果为true,如果有一个条件不成立则整个判断结束。

在下面的代码中,如果玩家等级大于2并且等级小于5时,整个条件表达式为true。如果此时玩家等级是1,在第一个判断处已经失败,因此后面的判断便不会在进行计算,整个表达式为false,将执行后面的语句。

你也已经注意到,我使用一个;作为成立时的语句,这是可行的。因为在C语言中;号代表语句的结果。这里它是一条空语句,用于保证if语句的完整性。

if ( level > 2 && level < 5 ){ ;}或运算(||)或运算是一个或者关系,即当所有条件中有一个成立时整个判定结束,结果为true,如果一个条件不成立则判断下一个。

假定一个表格有90列,编号为1-90,此处的代码用于测试无效的列索引。如果此时pos值为0,则第一次判定时整个表达式已经成立,这时整个或运算结束且结果为true,表明索引无效。如果pos为91,此时第一次测试失败,第二次测试成功,同样表示索引无效。

if ( column < 1 || column > 90 ){ printf( \”error column index\” );}非运算(!)非运算相当于反向反义的意思。即,非真为假,非假为真。 当表达x+y*z结果为0时,测试结果为真;结果为一个数值时,取反代表为假。

if ( !( x +y + z ) ){ ;}更多讨论注意下面这些例子的语法规则。

以 if ( level > 2 && level < 5) 来说,条件表达式相当于构造一个有效范围,要求level大于2且小于5。 但在书写上并不是 if ( 2 < level < 5 ), 这种表达方式在C语言中是错误的。

类似的,如果我们要判断三个数值不相等,不能写成 if ( a != b != c ) 正确的写法是:if ( a != b && a != c && b != c )

if ( level > 2 && level < 5 ) // okif ( 2 < level < 5 ) // errorif ( a != b != c ) // errorif ( a != b && a != c && b != c ) // ok

C语言的逻辑运算符和逻辑表达式

C语言快速入门——逻辑运算

C语言快速入门——逻辑运算

逻辑运算符:逻辑运算符的运算对象通常是关系表达式。!运算符只需要一个运算对象,其他两个逻辑运算符都需要两个运算对象,左侧一个,右侧一个。

逻辑表达式:当且仅当expression1和expression2都为真,expression1 &&expression2才为真。

如果expression1或expression2为真,expression1 || expression2为真。

如果expression为假,!expression则为真,反之亦然。

求值顺序:逻辑表达式的求值顺序是从左往右。一旦发现有使整个表达式为假的因素,立即停止求值。示例:

6 > 2 && 3 == 3 //真!(6 > 2 && 3 == 3) //假x != 0 && (20/x) < 5 // 只有当x不等于0时才会对第2个表达式求值。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6417.html

高级语言的编译器由哪些模块组成?

二叉树遍历要怎么算才快?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部