您的位置:首页 > 其它

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

2020-04-22 17:11 260 查看

笔试遇到这样一个题目:

在如下括号里填写适当代码,使得输出结果为: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

转载于:https://www.cnblogs.com/JiaJoa/p/7637651.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dingsigang6615 发布了0 篇原创文章 · 获赞 0 · 访问量 127 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: