众所周知,Java虚拟机根本没有实现goto关键字。我的一个函数需要这样的算法,在一个循环里,如果某一次循环不满足条件,那么整个循环需要重新开始。比如下面的例子,我想连续3次打印出随机数
都是0的情况。
private void incorrectGotoSample() {
int printNum = 3;
Random r = new Random();
int ri = r.nextInt(2);
LABEL: for (int i = 0; i < printNum ; i++) {
ri = r.nextInt(2);
System.out.println("ri = " + ri);
if (ri > 0) {
goto LABEL; // "goto" not realized in Java
}
System.out.println("you are here!");
}
}
考虑了半天,Java里还是能简单实现这样的想法的。替换方案如下,在外层加一个无限循环,使用break跳出不满足情况时的循环状态,并再次使用break跳出无限循环:
private void gotoSample() {
int printNum = 3;
Random r = new Random();
int ri = r.nextInt(2);
while (true) {
int i = 0;
for (i = 0; i < printNum ; i++) {
ri = r.nextInt(2);
System.out.println("ri = " + ri);
if (ri >= 1) {
break;
}
System.out.println("you are here!");
}
if (i == printNum) {
break;
}
}
}
程序的某次执行结果如下,显示其满足我们的需要。
ri = 1
ri = 1
ri = 1
ri = 0
you are here!
ri = 1
ri = 1
ri = 1
ri = 1
ri = 0
you are here!
ri = 0
you are here!
ri = 1
ri = 0
you are here!
ri = 0
you are here!
ri = 0
you are here!
分享到:
相关推荐
VB GoTo语句用法实例 VB GoTo语句用法实例
lua 5.2 中GOTO语句的使用lua 5.2 中GOTO语句的使用
Java中有goto关键字吗? 答案是有的,goto是java保留关键字,但是不能使用。...在C语言中goto一般配合条件语句,可用来实现条件转移,形成循环,跳出循环等。 注:java的底层是C,goto是java的保留字
WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示 对循环语句: WHILE〈表达式〉DO〈赋值语句〉 (1) 按给定的题目写出符合自身语法分析方法要求的文法和属性文法描述。 (2) 按给定的题目给出语法分析...
主要介绍了goto语句的使用注意事项等。
C#048goto语句查询
break_continue_goto_return语句
mysql 操作同样有循环语句操作,网上说有3中标准的循环方式: while 循环 、 loop 循环和repeat循环。还有一种非标准的循环: goto。 鉴于goto 语句的跳跃性会造成使用的的思维混乱,所以不建议使用。 这几个循环...
主要介绍了Go语言流程控制之goto语句与无限循环,是golang入门学习中的基础知识,需要的朋友可以参考下
本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下
使用goto语句搜索图书string[] G_str_arry=new string[] { "C#范例宝典", "最优化", "英语", "图像处理", "matlab基础教程", "马克思主义哲学", "科学社会主义", };//定义数组并初始化
文章中出现的goto语句的cpp版本。。。用于初学者使用,简单明了,直接打开便ok,省时省力。。。。
Python 默认是没有 goto 语句的,但是有一个第三方库支持在 Python 里面实现类似于 goto 的功能:https://github.com/snoack/python-goto.。比如在下面这个例子里, from goto import with_goto @with_goto def ...
包括代码及报告 输出三地址为goto语句那种,非三元式
C goto语句与标号.pdf
对break continue goto return语句都有详细讲解! 值得收藏
break语句,goto语句,continue语句,return语句 4.复合语句 把多个语句用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如 { x=y+z; a=b+c; printf(“%d%d...
计算机二级C语言考点归纳:goto语句及语句标号的使用.docx
一句代码解决On error goto line 多...On error goto line 错误跳转语句只能使用一次 本代码只需要加一句即可重复使用错误跳转 On error goto line VBA错误跳转多次使用的问题 On error goto 0 不行 err.clear也不行
IDL break、continue、goto等基本语法的使用例子,可学习idl