真值问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:22:13
Ahrs<Bhrs?1:Amins<Bmins?1:Asecs<Bsecs?1:0这个真值表达式是什么意思?具体的讲下?和:一起用时的用法,谢谢了。
Ahrs等都是变量,问整个表达式什么时候取真~~

(表达式1)?(表达式2):(表达式3)
判断表达式1的真假情况,真就输出表达式2的值,假就输出表达式3的值
此条件判断语句结合方向从右到左且关系运算符优先级高于关系运算符
所以Ahrs<Bhrs?1:Amins<Bmins?1:Asecs<Bsecs?1:0等价于
(Ahrs<Bhrs)?1:(Amins<Bmins)?1:(Asecs<Bsecs)?1:0
从右向左看,Asecs<Bsecs为真的话值为1,否则为0
Amins<Bmins为真的话值为1,否则为Asecs<Bsecs的判断结果
Ahrs<Bhrs为真的话值为1,否则为Amins<Bmins的判断结果

楼上正解....这里我给出等效的if判断语句....

Ahrs<Bhrs?1:Amins<Bmins?1:Asecs<Bsecs?1:0

等效于
if(Ahrs<Bhrs) return 1;
else if(Amins<Bmins) return 1;
else if(Asecs<Bsecs) return 1;
else return 0;

如果你是用来比较A,B两个时间的话,这个算法是错的...

应该是
if(Ahrs<Bhrs) return 1;
else if(Ahrs==Bhrs && Amins<Bmins) return 1;
else if(Ahrs==Bhrs && Amins==Bmins && Asecs<Bsecs) return 1;
else return 0;

对应的式子是
Ahrs<Bhrs?1:(Ahrs==Bhrs&&Amins<Bmins)?1:(Ahrs==Bhrs && Amins==Bmins && Asecs<Bsecs)?1:0