C零基础课程-14-逻辑运算符
Posted shellmad
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C零基础课程-14-逻辑运算符相关的知识,希望对你有一定的参考价值。
C语言中的逻辑运算符
C语言中的逻辑运算符有“&&”、“||”、及“!”,他们分别被称为逻辑与、逻辑或、逻辑非。
前两者是二元运算符,逻辑非是一元运算符。
逻辑与运算符“&&”
逻辑与运算符的基本语法是:
表达式1 && 表达式2
其求值的结果规则是:
- 当两个表达式均为非0时,求值结果为1
- 其他情况(只要有至少一个表达式为0),求值结果为0
实例:判断一个数字既可以被5整除又可以被7整除
#include <stdio.h>
int main(int argc, char* argv[])
{
int nValue = 0;
scanf("%d", &nValue);
if (nValue % 5 == 0 && nValue % 7 == 0)
{
printf("这个数字既可以被5整除,也可以被7整除
");
}
return 0;
}
逻辑或运算符“||”
逻辑或运算符的基本语法是:
表达式1 || 表达式2
其求值的结果规则是:
- 当两个表达式均为0时,求值结果为0
- 其他情况(只要有至少一个表达式为非0),求值结果为1
实例:判断一个年份,是否为闰年,判断闰年的标准是:
- 能被100整除,同时能被400整除
- 或者不能被100整除,但是能被4整除
#include <stdio.h>
int main(int argc, char* argv[])
{
int nYear = 0;
scanf("%d", &nYear);
//能被100整除,同时能被400整除
// nYear % 100 == 0 && nYear % 400 == 0
//不能被100整除,但是能被4整除
// nYear % 100 != 0 && nYear % 4 == 0
if (
(nYear % 100 == 0 && nYear % 400 == 0)
|| (nYear % 100 != 0 && nYear % 4 == 0)
)
{
printf("这个是闰年
");
}
else
{
printf("不是闰年
");
}
return 0;
}
逻辑非运算符“!”
逻辑非就是将表达式结果“反置”,其基本语法是:
!原表达式
其求值规则是:
- 如果原表达式为0,则求值后结果为1
- 如果原表达式结果为非0,则求值后结果为0
#include <stdio.h>
int main(int argc, char* argv[])
{
int nValue = 0;
scanf("%d", &nValue);
printf("原有表达式的值:%d
", nValue);
nValue = !nValue;
printf("逻辑取反后的表达式的值:%d
", nValue);
return 0;
}
逻辑运算符的短路特点
先看一段代码,推测以下代码的打印结果:
#include <stdio.h>
int main(int argc, char* argv[])
{
(printf("Hello, world!
") ) || (printf("something else
!"));
return 0;
}
实际上,这样的打印结果,与逻辑运算符的短路特性有关。
简单总结如下:
- 如果||运算符左边的表达式为真(非0),则右边的表达式不再执行
- 如果&&运算符左边的表达式为假(0),则右边的表达式不再执行
以上是关于C零基础课程-14-逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章
零基础 快速学Java韩顺平 p62-80 运算符:算数关系逻辑赋值三元和优先级