C 无三元算子条件下的变量定义
我只是不知道这句话是什么意思C 无三元算子条件下的变量定义,c,ansi,C,Ansi,我只是不知道这句话是什么意思 a = b%4 == 0 && b%100 != 0 || b%400 == 0; A=如果 b%4 == 0 && b%100 !=0 OR b%400 == 0 A=如果B是闰年,则为真。 A=如果B不是闰年,则为假 我们两年前就有过这样的情况:)这个表达式加上括号后可读性更强: a = ((b % 4 == 0) && (b % 100 != 0)) || (b % 400 == 0); 这是对公历闰年
a = b%4 == 0 && b%100 != 0 || b%400 == 0;
A=如果
b%4 == 0
&&
b%100 !=0
OR
b%400 == 0
A=如果B是闰年,则为真。
A=如果B不是闰年,则为假
我们两年前就有过这样的情况:)这个表达式加上括号后可读性更强:
a = ((b % 4 == 0) && (b % 100 != 0)) || (b % 400 == 0);
这是对公历闰年的考验:
b
如果是4
的倍数,则为闰年,除非是100的倍数,或者是400的倍数
例如:2016
是闰年,2000
也是,但1900
不是,而2100
将不会是闰年
|
和&
运算符分别是OR和and条件的快捷逻辑运算符。表达式与此等效:
if (b % 4 == 0) {
if (b % 100 != 0) {
a = 1;
} else {
a = 0;
}
} else {
if (b % 400 == 0) {
a = 1;
} else {
a = 0;
}
}
如果b是一个年份,a是true
如果b是闰年,你应该给K&R一个更好的解读。这意味着作者太无能,懒得添加足够的括号,以使表达式清晰易读,易于调试。如果我使用关系运算符,a只能是1/0?e、 g.“a=2*4==x”如果x==8,a将为1?是的,a只能为False\True 0\1a=2*4==x如果(x==8)将为True,如果(x!=8)将为False;