// 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) 这种形式