!a !b 和 !(a || b) 的故事

// awk代码,当continue执行时说明书是免费的
if(!(int(use_curr) == 0 || int(use_curr) == 30000)) 
{ continue 
}

这段代码大概是半年前写的,半年后过来读,发现已经不理解这段代码了,虽然理解当contniue执行时意味着书是免费的,但到底是use_curr等于0或30000免费,还是不等于时免费,已经迷糊了!

这里需要进行仔细推导:
0 进入表达式 -> use_curr==0 为真 -> 反转为假 -> continue不执行 -> 收费的 -> 0和30000是收费的,其他为免费

if(int(use_curr) != 0 && int(use_curr) != 30000) 
{ continue 
}

不等于0 和 30000的数进入表达式 -> countinue 执行 -> 免费的 -> 0和30000是收费的,其他为免费


那么看起来 !a && !b 还是要优与 !(a || b) 这种形式

转载于:https://www.cnblogs.com/code-style/p/3522697.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部