A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fso918 黑马帝   /  2011-10-13 12:43  /  2935 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Test{
        public static void main(String[] args){
                  System.out.oprintln("Hello ");
                  http://www.google.com
                  System.out.println("World");
         }
}
为什么编译器不提示错误呢?
且能正常运行。

点评

System.out.oprintln("Hello "); ??  发表于 2011-10-13 13:14

8 个回复

倒序浏览
呵呵,就是挺奇怪;
试了试 其实不是加 “http://www.google.com”起得什么作用
关键是有个":"
"//"已经把后面的代码注释掉了
abc:System.out.println..... 也能编译通过
xx:;
什么也不写也能编译通过
我查百度没查出来!~~
回复 使用道具 举报
许冉 黑马帝 2011-10-13 13:05:18
藤椅
本帖最后由 xuan 于 2011-10-13 13:06 编辑

你一不小心就符合了java的语言规范,主要是这句,http://www.google.com
双斜杠就不用说了 ,那么注释
那么“//www.google.com”这一部分就合法了
"http:"在java中这种写法叫做标签,用于定义循环体,也是合法的
如果放在某个for循环前面,就说明这个for循环有个名字,叫http
只不过你这个没有循环体而已,但语法没有错误,就想定义一个类,光有个类名,没有类的内容
既然都是合法的 那么当然不会报错了

回复 使用道具 举报
朱华 黑马帝 2011-10-13 13:10:09
板凳
纯手打,请区分。
你知道在C中有一种goto的定义么?
JAVA也有goto,不过频繁的使用goto会严重破坏代码的可读性,所以sun不建议使用goto,但仍然保留了这个方式。
  1.     public static void main(String[] args){
  2.               System.out.println("Hello ");
  3.               thisIsPartOfCode:
  4.               System.out.println("World");
  5.      }
复制代码
在上面这段代码中,thisIsPartOfCode下面的代码,可以看做是代码的一段,然后你用
goto thisIsPartOfCode,可以让程序跳到这个位置继续向下执行,在C中,这种用法常用在跳出循环。
回复 使用道具 举报
朱华 黑马帝 2011-10-13 13:22:22
报纸
不好意思补充一句。。
  1. class Test{
  2.         public static void main(String[] args){
  3.                   System.out.oprintln("Hello ");
  4.                   http://www.google.com
  5.                   System.out.println("World");
  6.          }
  7. }
复制代码
你的代码中的第4句,http://www.google.com,//后面的内容被注释掉了,相当于你定了一个名叫http的标签,在JAVA中虽然你不能像C那样直接goto http,但是可以用break http或者continue http来使用,常用的形式是:
  1.               loop1:
  2.                       for (int i=0;i<3;i++) {
  3.                               System.out.println("我是循环1");
  4.                               loop2:
  5.                               for (int j=0;j<3;j++) {
  6.                                       System.out.println("我是循环2");
  7.                                       if (j == 2) {
  8.                                               continue  loop1;
  9.                                       }
  10.                               }
  11.                       }
复制代码

评分

参与人数 1技术分 +3 黑马币 +3 收起 理由
admin + 3 + 3 赞一个!

查看全部评分

回复 使用道具 举报
fso918 黑马帝 2011-10-13 13:40:36
地板
朱华 发表于 2011-10-13 13:22
不好意思补充一句。。你的代码中的第4句,http://www.google.com,//后面的内容被注释掉了,相当于你定了一 ...

谢谢
了解了

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
朱华 黑马帝 2011-10-17 14:53:06
7#
fso918 发表于 2011-10-13 13:40
谢谢
了解了

没事儿,不用谢~
回复 使用道具 举报
张振宁 黑马帝 2011-10-18 17:06:21
8#
              System.out.oprintln("Hello ");
这句话编译不可能通过。
http:  这个可以通过。

http:
for (int i = 0; i < 5; i++) {
continue http;
System.out.println(123);
}
这个是循环的跳出的标识
continue http;后代码全都不运行。
回复 使用道具 举报
余志强 黑马帝 2011-10-18 18:04:09
9#
支持啊楼上
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马