关于如何输出if()..else里的内容的问题

Posted 今天学什么

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于如何输出if()..else里的内容的问题相关的知识,希望对你有一定的参考价值。

笔试遇到这样一个题目:

在如下括号里填写适当代码,使得输出结果为:HelloWorld.

public static void main(String[] args) {
          if(//填写适当代码){
              System.out.print("Hello");
          }else{
              System.out.print("World");
          }
}

 

经过一番查找,得出如下答案:

填写: args==null||new Object(){{main(null);}}.equals("HelloWorld")
分析:第一次运行main方法,args参数不为null,即args==null为false,由于逻辑或运算||在左边运算为false的情况下会继续运行边表达式,
表达式 new Object(){{main(null);}}.equals("HelloWorld") 先调用main方法并传入null,此时args为null, 那么args==null便为真,于是就会先执行
System.out.print("Hello"); 输出Hello.
后面带的equals方法是为了返回一个boolean类型,以便符合if(条件)的boolean类型的要求。
接着,由于args==null为false,new Object(){{main(null);}}.equals("HelloWorld")也为false,于是便会执行System.out.print("World");
所以结果便会打印HelloWorld

以上是关于关于如何输出if()..else里的内容的问题的主要内容,如果未能解决你的问题,请参考以下文章

一个关于if else容易迷惑的问题

AS3 求大神优化下这段代码,这个代码里的if else太多了,但需要去判断关数在返回指定的数组,求大神简化!

JavaScript里的try..catch和if...else有何区别啊

如何用策略模式,优化你代码里的的if-else?

字节二面:如何用策略模式,优化你代码里的的if-else?

字节二面:如何用策略模式,优化你代码里的的if-else?