如果在java代码中直接运行下面这个代码,会报错吗?
public static void Demo_mark() {
System.out.println("请问这个代码有毛病吗?");
https://www.baidu.com
System.out.println("没毛病!!!");
}
实际跑一下,就会发现这个代码是可以运行的。
但是https://www.baidu.com明显不符合java的语法,但是为什么不会报错呢?这里就涉及到java的mark标记语法。
java的mark标记语法基本规则:
标识符名称 : 标识符名称指代的代码
所以实际上,对于“https://www.baidu.com”,在编译器看来是这样的,所以就不会报错了。
标识符名称(https) + : + 标识符名称指代的代码(无)+ 注释(//www.baidu.com )
那么标识符在一个代码如何使用呢?看下面两个例子
例子一:
/*
* Demo1有两个循环,out标记的循环称为外循环,in标记的循环称为内循环
*/
public static void Demo1() {
out: for(int i = 1; i< 5; i++){
System.out.print("i="+i+" ");//打印i的值
in: for(int j = 1; j < 5; j++){
System.out.print("j="+j + " ");//打印j的值
break in;//跳出in,in代表内循环,所以每次的j等于1就会break
}
}
}
例子二:
/*
* Demo2有两个循环,out标记的循环称为外循环,in标记的循环称为内循环
*/
public static void Demo2() {
out: for(int i = 1; i< 5; i++){
System.out.print("i="+i+" ");
in: for(int j = 1; j < 5; j++){
System.out.print("j="+j + " ");
break out;//跳出out,out代表外循环,所以只打印一轮就结束循环
}
}
}
两个代码实际的运行结果:
Demo1与Demo2的区别只是在于代码中内循环break后面跟的标识符不同,但是两者输出的结果却千差万别,可以实际跑一下这两个例子,从中体会标识符在代码中的运用