日期:2014-05-20  浏览次数:20734 次

关于简单的逻辑判断
要求
SQL code
                [SQL] SELECT count(std_no) FROM SREG400 
                           WHERE STD_NO = :ARG_STD_NO 
                                AND MOD_CD IN ('U0117010', 'U0117020') AND TRET_ST = 'U0121010' 



代码

if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010"){

不知道这么写对不对,modCd如果值是'U0117010', 'U0117020'其中一个,并且modResnCd是U0121010这个值的时候就要进入这个if语句中,,不知道我这么写的逻辑代码对不对

------解决方案--------------------
&&优先级大于||
所以if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010")
相当于是if(modCd=="U0117010" || (modCd="U0117020" && modResnCd="U0121010"))
按照你要的结果这样写是错误的
应该的if((modCd=="U0117010" || modCd="U0117020") && modResnCd="U0121010")
------解决方案--------------------
不管以后怎么写代码,记得好的习惯是不用去背优先级,用“()”来括起来!