黑马程序员技术交流社区

标题: 一道填空题= =填?? [打印本页]

作者: Imp_x    时间: 2014-8-21 22:40
标题: 一道填空题= =填??
本帖最后由 Imp_x 于 2014-8-23 22:56 编辑

记得以前看到过一个帖子,感觉论坛果然是潜伏了好多高手= =、来发挥点创造力吧  哈哈
要求:打印出Hello World!
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 if(/*填什么,发表高见吧,哈哈~ ~*/)
  6.                         System.out.print("Hello  ");
  7.                 else
  8.                         System.out.print("World!");
  9.         }
  10. }
复制代码
三楼答案可以的!另外楼主搜集了以下几个可以实现的方法:
  1. 一、使用匿名内部类:
  2. if (new Object(){{System.out.print("Hello,");}} == null)
  3.        
  4. 二、利用PrintStream的append或format等方法(append处改为format):
  5. if (System.out.append("Hello,") == null)

  6. 三、利用反射调用System.out.print
  7. if (System.out.getClass().getMethod("print",String.class).invoke(System.out, "Hello,")!=null)
复制代码

欢迎多增添点啊,每个人的想法都不一样,多交流开阔下视野{:3_64:}



作者: 笑脸迷人    时间: 2014-8-21 22:52
沙发,拿题回去想想的,谢谢分享
作者: 单线程xia    时间: 2014-8-21 23:59

复制代码


作者: 单线程xia    时间: 2014-8-22 00:01
public static void main(String[] args)
    {
            if(System.out.printf("Hello ") == null)
                    System.out.print("Hello  ");
            else
                    System.out.print("World!");
    }

试了下能实现,不过感觉正解应该不是这样。 坐等各位大神


作者: Huberry    时间: 2014-8-22 00:09
坐等大神
作者: sunny~    时间: 2014-8-22 07:12
这题肯定要在括号内下手,3楼那朋友行
作者: 牛兴亮    时间: 2014-8-22 07:26
这个需要了解新的指令吗?
作者: sk0806    时间: 2014-8-22 07:30
我记得也看过这题,,,等等答案
作者: 王凯路路    时间: 2014-8-22 09:45
我终于知道了   - -.   根本就没法同时运行...所以三楼的应该就是最完美的解释了..
作者: cs8630323    时间: 2014-8-22 20:16
本帖最后由 cs8630323 于 2014-8-23 13:03 编辑
王凯路路 发表于 2014-8-22 09:45
我终于知道了   - -.   根本就没法同时运行...所以三楼的应该就是最完美的解释了.. ...

class Test
{
        public static void main(String[] args)
        {
                if(1==1)System.out.println("HELLE WORLD"); else if(1==2)
                        System.out.print("Hello  ");
                else
                        System.out.print("World!");
        }
}
作者: 忆梦追风    时间: 2014-8-22 20:51
好题目,要多分享啊
作者: 子阳zy    时间: 2014-8-22 20:56
研究研究。。
作者: wyf20106    时间: 2014-8-22 21:06
看看。。
作者: HKing    时间: 2014-8-22 21:37
是不是需要用到递归和反射?坐等大神!
作者: liusj    时间: 2014-8-22 21:45
坐等大神
作者: 王凯路路    时间: 2014-8-23 08:45
cs8630323 发表于 2014-8-22 20:16
class Test
{
        public static void main(String[] args)

你这都不在一个代码块?
作者: 逍遥客    时间: 2014-8-23 08:58
我靠,这题有意思。。
作者: 练习题    时间: 2014-8-23 09:16
单线程xia 发表于 2014-8-22 00:01
public static void main(String[] args)
    {
            if(System.out.printf("Hello ") == null)

有一点不懂 if里面的条件表达式System.out.printf("Hello ") == null ,System.out.printf("Hello ") 并没有返回值阿 这个为什么可以判断是否为null?
作者: 戏言丶    时间: 2014-8-23 10:44
练习题 发表于 2014-8-23 09:16
有一点不懂 if里面的条件表达式System.out.printf("Hello ") == null ,System.out.printf("Hello ") 并没 ...

请注意printf和print的区别
作者: WJN_YES    时间: 2014-8-23 10:58
java 中的两个函数的总结

printf主要使用格式化,类似于C语言中的格式化输出语句
PrintStream printf(String format, Object... args)
具有返回值,返回PrintStream对象
注意一:
    如果args为空,则printf输出一行数字后不换行
    如果args不为空,则printf输出一行数字后需要换行

注意二:
    printf 因为有返回值,故可以应用到条件表达式之中,
如if(System.out.printf("hello")!=null){
}

print因为返回值为void,故不可以应用到条件表达式之中
如if(System.out.print("hello"))
编译器会报错

这是我在网上找到的,我觉得很有用,所以想分享给大家看看
作者: hmyuanqi    时间: 2014-8-23 11:00
看看大家都是怎么想的
作者: cs8630323    时间: 2014-8-23 13:04
王凯路路 发表于 2014-8-23 08:45
你这都不在一个代码块?

改好了。。。
作者: 许愿じ☆VE杰    时间: 2014-8-23 22:12
谢谢分享
作者: Imp_x    时间: 2014-8-23 22:58
单线程xia 发表于 2014-8-22 00:01
public static void main(String[] args)
    {
            if(System.out.printf("Hello ") == null)

没有所谓的正解{:3_67:}看大家的创造力吧   你这填的可以的{:3_64:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2