黑马程序员技术交流社区

标题: 一道有趣的面试题 [打印本页]

作者: 张淼    时间: 2012-9-28 23:03
标题: 一道有趣的面试题
闲来无事浏览论坛的帖子,看到一个题目很有趣,但有些没想明白。
class Test1
{
        public static void main(String[] args)
        {

                String msg = "XXX公司欢迎您";
                double x = 99.0;
                if(x > 0)
                {
                        http://www.bjxxx.com.cn;
                        System.out.println("XXXXXXX" + x);
                 }
        }
}

编译,运行可以通过,而且有输出结果,如果//后面的为注释内容,那http:为何可以编译和运行都通过呢?
作者: rioy1    时间: 2012-9-28 23:14
http:部分被认为是跳转标志,后面的是注释
作者: 严海荣    时间: 2012-9-28 23:22
http:是一个空标记,没有continue回到这个标记。
  1. public static void main(String[] args) throws Exception{
  2.         H:
  3.         for(int i=0;i<10;i++){
  4.             System.out.println("i:"+i);
  5.             for(int j=0;j<10;j++){
  6.                 System.out.println("j:"+j);
  7.                 if(j==3){
  8.                     continue H;
  9.                 }
  10.             }
  11.         }
  12.      
  13.       
  14.     }
复制代码
H: 做了个标记 然后continue 之后可以跳转到标记处,大家没感觉到像什么东东吗?goto 就是他,java没goto,但是有goto的实现方式

作者: 李润根    时间: 2012-9-29 00:04
是的,JVM认为这是跳转标记
作者: 黑马杨锦喜    时间: 2012-9-29 00:51
跳转标记,别被外表蒙骗了卦
作者: 陈琦    时间: 2012-9-29 08:19
一个跳转标记,就类似于C语言中万恶的goto方法。可以通过 berak HTTP;和 continue HTTP;跳转过去。
作者: 柳彬    时间: 2012-9-29 09:11
很明显是被虚拟机认为是标记了,其实有些面试题总是用一些东西来误导大家,问题本身并不难,
作者: 王小闲7    时间: 2012-9-29 09:40
学习了……




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