Java 编程语言中很少被人了解的特性-statement label
下面的语句会编译报错或者打印什么?
System.out.print("baidu site :");https://www.baidu.com;System.out.println(" format");
很多人会说:会编译出错,中间那行是什么鬼?
其实,不会报错,会打印出:
baidu site : format
如果改成这样的语句,是不是就不会觉得编译报错了?
System.out.print("baidu site :");https ://www.baidu.com;System.out.println(" format");
像不像switch语句中的case
int q = (n+7)/8; switch (n%8) {case 0: do { foo(); // Great C hack, Tom,case 7: foo(); // but it's not valid here.case 6: foo();case 5: foo();case 4: foo();case 3: foo();case 2: foo();case 1: foo();} while (--q > 0); }
上面的语句,":" 是statement label 翻译成标号语句。
其语法如下:
LabeledStatement: Identifier : StatementLabeledStatementNoShortIf: Identifier : StatementNoShortIf
与c和c++不同,java中没有goto语句;标号语句用于出现在标号语句内任何地方的break或者continue语句之上。
再来一个标句语句作为结尾的练习吧
class Test {char[] value;int offset, count;int indexOf(TestString str, int fromIndex) {char[] v1 = value, v2 = str.value;int max = offset + (count - str.count);int start = offset + ((fromIndex < 0) ? 0 : fromIndex);i:for (int i = start; i <= max; i++) {int n = str.count, j = i, k = str.offset;while (n-- != 0) {if (v1[j++] != v2[k++])continue i;} return i - offset;}return -1;} }
参考资料
【1】https://docs.oracle.com/javase/specs/jls/se12/html/jls-14.html#jls-14.7
转载于:https://www.cnblogs.com/davidwang456/p/11505556.html
Java 编程语言中很少被人了解的特性-statement label相关推荐
- 文本分类有哪些论文中很少提及却对性能有重要影响的tricks?
前言 一年前小夕在知乎上提问过这么一个问题 文本分类有哪些论文中很少提及却对性能有重要影响的tricks? 链接:https://www.zhihu.com/question/265357659/an ...
- Java IAQ:很少被回答的问题
Q:什么是很少被回答的问题? 一个问题如果被回答地很少,有可能是因为知道答案的人很少,亦或是因为问题本身模糊不清.微不足道(但对你来讲可能很关键).我似乎发明了一个术语,但是它在一个信息量很大的叫做A ...
- 里面怎么定义变量_小哥今天要给朋友们分享一下Java编程语言中的变量与常量的区别...
喽,各位朋友们大家好! 我是90小哥爱数码,很高兴今天又能和大家在这里见面了. 那么在最近的这段时间里面呢,小哥连续为朋友们介绍了Java计算机编程语言中几个比较重要的知识点.其中包括了Java编程语 ...
- 为什么业务中很少用到设计模式
老铁们在写代码的的时候,估计多少都沾染一点设计模式这个概念,但很多猿人在实际的开发中发现设计模式用的很少,几乎就是零,这是为何呢? 设计模式的目的是提供可扩展性和可维护性.但是我们开发的项目本 ...
- JAVA编程语言中的关键字有哪些?
JAVA编程语言中有关键字,它们在编程中有着特定的含义和用途.下面是这些关键字的详细介绍: abstract: 抽象类或抽象方法的修饰符,用于表示方法或类是抽象的,不能被直接实例化. assert: ...
- 为什么只有很少的人听说过西工大这个名字?
(转载)这是一篇来自天涯论坛的帖子 高考完暑假--.. 亲戚:报的哪儿? 我:西北工业大学. 亲戚:哦哦,在哪儿?在甘肃? 我:在西安- 亲戚:二本? 我:一本- 亲戚:是211不? 我:985,21 ...
- [细思极恐]\r\n与\n在java编程语言中的区别测试
1.起因 做数据抓取时发现,网页源码里的换行有\r\n,\n,在导出数据到csv时需要对此进行替换,因此查找了相关区. 2.定义 \n 换行 \r 回车rc 历史信息参考:http://blog ...
- 这10道Java面试题!95%的人回答不出来!
作者:Yujiaao https://segmentfault.com/a/1190000019962661 1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 2.为什么Ja ...
- 这10道Java面试题!大部分的人回答不出来
1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 2.为什么Java中不支持多重继承? 3.为什么Java不支持运算符重载? 4.为什么 String 在 Java 中是不可 ...
最新文章
- h2 mysql 兼容性_H2内存数据库对sql语句的支持问题 sql放到mysql数据库中能跑
- rabbitmy实战
- docker中的mysql操作
- .NET设计模式(3): 抽象工厂模式
- Web前端研发工程师编程能力飞升之路
- 数据库利器Navicat最全快捷键整理
- vue、nuxt性能优化
- 小米oj 组长偏头痛(二分)
- android u盘加载_如何获取Android系统挂载U盘的路径
- 搭建网站基本步骤(搭建一个网站的步骤)
- Python教程:利用百度API进行批量图片OCR识别
- 树莓派系统安装和调试 总结整理篇
- 让树莓派变身照相机——摄像头控制
- HC-05蓝牙AT指令无反应问题
- 网络协议—三要素与五层网络协议
- 思科交换机使用TFTP工具备份配置和上传配置
- 一起来玩玩WebGL--第一弹
- ORB-SLAM2源码特征点提取
- el-table 选择列合计,fixed固定某列,合计行放在表格上方,设计合计行样式
- 基于微信小程序云开发的职业学校招生报名小程序源码,职业学校招生报名微信小程序源码 ,职业学校招生报名小程序源码
热门文章
- android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...
- php的封装继承多态,PHP面向对象深入理解之二(封装、继承、多态、克隆)
- mysql5.5不兼容5.6sql文件_为什么这段sql在我的电脑上可以执行,另外一台不可以。使用的mysql5.6 另一台是5.5...
- 怎么用python编简单游戏_用Python实现一个简单的算术游戏详解
- 显卡显存故障检测工具_【硬件资讯】1660super实锤!更换DDR6显存!带宽超1660ti!...
- cr材质库怎么安装_cr5.0安装没有材质库
- android 关闭多点触控_Cocos Creator关闭多点触摸的问题
- pandas如何获取某一个元素的行号,也就是索引值
- 湖南大学计算机学院软件专业杨磊,杨磊-湖大信息科学与工程学院
- 全球变暖java_全球变暖 蓝桥杯