在 C 语言中,&&是逻辑与 运算符。
1、基本运算规则
它用于连接两个逻辑表达式(也可以是能够返回逻辑值的表达式)。当且仅当&&两边的表达式的值都为真(在 C
语言中,非 0 值表示真,0 值表示假)时,整个逻辑与表达式的值才为真;
只要有一个表达式 的值为假,整个逻辑与表达式的值就为假 。
例如:
(1) 假设有两个变量 a = 5 和 b = 3,表达式(a > 0) && (b > 0)的值为真 。因为 a >
0(5>0)这个表达式的值为真 (1),b > 0(3>0)这个表达式的值也为真 (1),所以(a > 0) && (b > 0)的值为
1。
(2) 如果 a = 0,b = 3,表达式(a > 0) && (b > 0)的值为假 。因为 a > 0(0>0)这个表达式的值为假
(0),此时不需要再判断 b > 0 这个表达式的值,整个逻辑与表达式(a > 0) && (b > 0)就已经确定为假
(0)了。这是因为逻辑与运算具有短路特性。
2、短路的特性
当计算 a && b 时,如果 a 的值为假,那么就不会再计算 b 的值了。这是为了提高程序的效率,避免不必要的计算。
例如:
有这样的代码段:
int x = 0;
int y = 10;
if(x > 0 && (y/y) == 1) {
// 这里的代码不会执行
}
在这个例子中,因为 x > 0 的值为假(0),所以(y/y) == 1 这个表达式根本不会被计算,这样就避免了可能出现的除数为零的错误(如果 y 为
0,y/y 就会出现除零错误)。
3、在条件判断中的应用
&&经常用于 if 语句、while 语句等的条件判断部分。
例如:
以下代码用于判断一个数是否在某个区间内:
这里 num >= 5 && num <= 10 这个条件表达式用于判断 num 的值是否同时满足大于等于 5 和小于等于 10
这两个条件,如果满足,则执行 if 或 while 语句块中的代码。
1、逻辑与运算符 &&
如果想写一个判断字符是否是小写字母的表达式如何写呢?
比如此变量定义为 ch,是否可以写成: 'a' <= ch'z' 这样呢?
虽然我们从小的数学习惯让我们觉得这样写没错,但在 C 语言中这样写是错误的(即便编译没错),而正确的做法是将这个其实是两个条件的表达式(一个上限一个下限)分开写,并要求两个表达式同时满足即可。
两个表达式很容易实现,即: 'a' <= ch 和 ch <= 'z',那么如何要求两个都成立呢,这就可以说 &&
这个运算符了,它表示逻辑与的意思,即要求两边的表达式都为真,整体才为真。
因此这个表达式完整的写法可以写成:
'a'<=ch && a<='z'
2、逻辑或运算符 ||
如果我们想实现多个表达式,只要满足其中任意一个就可以的功能,该如何实现呢?
比如判断一个字符是不是字符(无论大小写都算)
那么我们会写两个表达式:
'a'<=ch && a<='z' 以及 'A'<=ch && a<='Z'
那么这两个表达式,其实只要满足一个就可以符合条件,那么解决办法就是用逻辑与运算符 || 来链接即:
('a'<=ch && a<='z') || ('A'<=ch && a<='Z')
即可实现,|| 运算符左右两边只要有一个满足条件整体表达式就成立
声明:本站稿件凡恩品牌资讯以外部分类目资讯转载来自于互联网,如有疑义请联系我们删除。