是不一样的,对于A && B 这样的布尔表达式,先计算A,若A为false,则不会计算B,其实可以用下面的语句来表达这种'短路':
  A && B <=> if(A)
             { 
                if(B) return true;
                else return false;
              } 
             else return false;
据我所知,C++,java里面都是这种语意,

解决方案 »

  1.   

    如果 key = null 你的前一个判断条件就会出现异常,因为调用key.equals("TT"),key对象根本就不存在,当然也就不能调用他的方法了。而第二个呢,当key = null 的时候,就不再作key.equals("TT")的调用了,这好像就是所谓的短路求值的方法。
      

  2.   

    &&是短路与,这点上面两位说得很明白了。可报错似乎不应该啊。试试定义key时初始化吧。
      

  3.   

    当我输入TT,使key=“TT”时,这两个的比较应该是符合的啊?并没有null的存在啊? 请在解释下。
      

  4.   

    你有没有对key初始化啊,这是关键!
      

  5.   

    有初始化啊,让key="";
    还是不行啊,问题是在生成第二个表单再提交时,抱错:
    java.lang.NullPointerException
    at /jsp/Myjsp/Firstjsp.jsp._jspService(/jsp/Myjsp/Firstjsp.jsp.java:35) (JSP page line 14)
    at com.orionserver[Orion/1.5.3 (build 10509)].http.OrionHttpJspPage.service(.:56)
    at com.evermind[Orion/1.5.3 (build 10509)]._co._skc(.:5510)
    at com.evermind[Orion/1.5.3 (build 10509)].server.http.JSPServlet.service(.:31)
    at com.evermind[Orion/1.5.3 (build 10509)]._bxb._crd(.:501)
    at com.evermind[Orion/1.5.3 (build 10509)]._bxb._ukb(.:170)
    at com.evermind[Orion/1.5.3 (build 10509)]._cn._uab(.:576)
    at com.evermind[Orion/1.5.3 (build 10509)]._cn._fm(.:189)
    at com.evermind[Orion/1.5.3 (build 10509)]._bs.run(.:62)
      

  6.   

    那就把key != null,改为key.equals(""),一定OK的。
      

  7.   

    写错了,应该是 !key.equals("")
      

  8.   

    因为JVM是从前向后,从左到右执行的,if (key.equals("TT") && key!=null),如果key=null, key.equals("TT") 肯定错,因为null没有equals方法。
      

  9.   

    或者你可以反过来写;   if (key == null || key.equals(""))
        {
          //key is null or key==""
         }
        else {
             out.print("<font color='red'>hello</font>");
        }
      

  10.   

    也就是很基本的与或非操作。
    记得java里面是从前向后,从左到右执行的,对于或操作,前一个条件满足了的话,第二个条件是不执行的。