当前位置:  技术问答>java相关

问一个简单问题: if (key!=null && key.equals("TT")) 与if (key.equals("TT") && key!=null)这样的条件是相同的么?

    来源: 互联网  发布时间:2015-08-11

    本文导语:  在我写的JSP中:    if (key.equals("TT") && key!=null)     {       out.print("hello");     } 这样就会抱错.  而     if (key!=null && key.equals("TT"))     {         out.print("hello");     } 就会执行。。。     这两...

在我写的JSP中:
   if (key.equals("TT") && key!=null)
    {
      out.print("hello");
    }
这样就会抱错.  而
    if (key!=null && key.equals("TT"))
    {
        out.print("hello");
    }
就会执行。。。
    这两个比较条件是不同么???

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

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

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

|
或者你可以反过来写;

   if (key == null || key.equals(""))
    {
      //key is null or key==""
     }
    else {
         out.print("hello");
    }

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

    
 
 

您可能感兴趣的文章:

  • Key值为0xffffffff的共享内存问题
  • 关于用ftok生成key的问题
  • 关于BES的问题,50分,只问serialnumber 和KEY
  • CMP的findByPrimaryKey(key)返回值的问题
  • curses函数中关于键盘的问题,我为什么不能得到键KEY_ENTER的输入.
  • mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法
  • Mysql中Insert into xxx on duplicate key update问题
  • 基于C++ map中key使用指针问题的详解
  • 线程专有数据问题,pthread_key_create()
  • mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
  • MYSQL的REPLACE和ON DUPLICATE KEY UPDATE语句介绍解决问题实例
  • des加密解密源码 C# key值问题分析
  • jbuilder6的license key 的问题
  • 请教关于equals的问题
  • 关于equals的问题!!怪得很!!不知道为何出错!!请大虾指教~!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个条件null问题(C shell)高分
  • r.getString("aa")取出null后的处理问题...
  • 请问几个有关File lock和null pointer的问题
  • 关于double类型为null的问题。
  • 请教3个问题:1.setleds设置numlock 2./dev/null写法的作用 3.关于path打通
  • 脚本问题 if ls|grep -i $loop>/dev/null s>&1 怎么解释
  • 操作系统 iis7站长之家
  • tmpnam(NULL)的问题,创建的临时文件怎么看不到啊?
  • null与unset问题
  • SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法
  • mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3