要求
                [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语句中,,不知道我这么写的逻辑代码对不对

解决方案 »

  1.   


        if((STD_NO=ARG_STD_NO)
              &&(modCd=="U0117010" || modCd="U0117020" )
              &&(TRET_ST = 'U0121010')){}
    直接翻译得出的结果!
      

  2.   

    那么问一下,这个
    if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010"){ 

    if((modCd=="U0117010" || modCd="U0117020") && modResnCd="U0121010"){ 
    这个,只是多加了一个括号有区别吗还有就是
    位置变一下,让&&这个在前面||这个在后面,
      

  3.   

    ||是逻辑或运算

    if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010"){ 
    里面如果
    modCd=="U0117010" 判断为true
    那末后面的都不会被执行
    直接进入if块里
      

  4.   

    现在我想做的效果是
    if(modCd1=="U0117010" || modCd2="U0117020" && modResnCd="U0121010"){ 
    modCd1或者modCd2其中一个为true,并且modResnCd也为ture才进入if模块是不是我这么写错了
      

  5.   

    &&优先级大于||
    所以if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010")
    相当于是if(modCd=="U0117010" || (modCd="U0117020" && modResnCd="U0121010"))
    按照你要的结果这样写是错误的
    应该的if((modCd=="U0117010" || modCd="U0117020") && modResnCd="U0121010")
      

  6.   

    现在我想做的效果是 
    if(modCd1=="U0117010" || modCd2="U0117020" && modResnCd="U0121010"){ 
    modCd1或者modCd2其中一个为true,并且modResnCd也为ture才进入if模块是不是我这么写错了 对,你这么写错了,正确方法是
    if((modCd1=="U0117010" || modCd2="U0117020") && modResnCd="U0121010"){ 或条件要用括号括起来代表一个条件,否则或条件是顺序判断,第一个为真就不继续向后判断了
      

  7.   


    那就是
    if ((modCd1=="U0117010" || modCd2="U0117020") && modResnCd="U0121010"){
      

  8.   

    &&优先级大于|| 
    所以if(modCd=="U0117010" || modCd="U0117020" && modResnCd="U0121010") 
    相当于是if(modCd=="U0117010" || (modCd="U0117020" && modResnCd="U0121010")) 
    按照你要的结果这样写是错误的 
    应该的if((modCd=="U0117010" || modCd="U0117020") && modResnCd="U0121010")
      

  9.   

    大家都忘了Equals和良好的代码风格吗,前一阵子还有人讨论来着:
    if (("U0117010".equals(modCd) || "U0117020".equals(modCd)) && "U0121010".equals(modResnCd)){