javaforgoto
‘壹’ eclipse java goto 报错
java虽然goto也是关键字,但是这个关键字没有实现c的功能,只是看看而已,并没有用。
如果想用c语言里的goto跳出多重循环,可以用java提供的做标记实现
l:
for(;;)
for(;;){
break l;
}
‘贰’ JAVA中,break关于类似goto的用法
这个写法是对的,你把i范围取大点,他还是循环2次,没问题
public class BreakExc {
public static void main(String[] args) {
int a=0;
A:for(int i = 0; i<7; i++){
a++;
if(i == 1) break A;
}
System.out.println(a);
}
}
‘叁’ java中类似于C语言的goto无条件转向语句的语法是什么
Java不存在goto语句,但是已经用”类名.方法“的形式进行方法调用。
解释:goto语句作为java的保留字段,但是没有实际的应用的。goto语句实际上是C语言的范畴,用来定义指针跳转用的,java中通过”类名.方法“的形式进行的方法调用,不在用goto语句进行实现,这个是java的一大改进。
JAVA中实现goto语句功能 :
使用方法如下:
1 label0:
2 for (int k = 0; k < 10; k++) {
3 ..........
4 label1:
5 for (int j = 0; j < 10; j++) {
6 ................
7 break label0;
8 }
9 ...........
10 label2:
11 for (int kk = 0; kk < 10; kk++) {
12 ..............
13 break label0;
14 }
15 }
16 System.out.println("here");
将需要跳转的到的循环开始处使用lablename:的方式标注(lablename是自定义标签名)
例如,第1行代码所示.在循环体内,可以使用break lablename;或者continue lablename跳转到该处第1行代码的地方,第7行代码执行后,将跳转到第1行代码处.
break 和continue的区别就是,break跳到lablename处后,接下来是执行该lablename所代表的循环之后的语句,例如第16行代码;而 continue则是将循环记数加1或者减1继续执行lablename所代表的循环,直到条件不满足或遇到return语句为止.
这样我们就可以在循环中任何位置跳转到父循环外去,无论嵌套多深.
注意:
1. lablename标签名和所代表的标签之前不能有任何其他的语句,例如第1行和第2行之间不能有其他的任何语句出现,否则编译不通过;
2.该跳转只能跳转到祖先级循环,同级循环之间不能跳转,例如第13行不能跳转到第4行
3.虽然该跳转在一定程度上方便了编程,不过最好尽量避免,因为它和goto一样在一定程度上破坏了结构化编程的特点。
更详细的例子可参考如下链接:http://lavasoft.blog.51cto.com/62575/178997/
‘肆’ java相关,用什么代替goto语句
import java.util.Random;
import java.util.Scanner;
public class DoubleBalls {
public static void main(String[] args) {
selectRandom();
}
public static void selectRandom() {
System.out.println("是否机选一组双色球号码?(Y/N)");
Scanner input = new Scanner(System.in);
char a = input.next().charAt(0); // 输入一个char字符,0位即是第一位
if (a == 'Y' || a == 'y') {
Random suiji = new Random(); // 创建suiji方法
int blue = suiji.nextInt(16);// 从0到16中选一个数字个蓝球
while (blue == 0) {
blue = suiji.nextInt(16);
}// 如果选到了0,再选一次给blue
int red[] = new int[6];// 用一个6个元素的数组装红球
for (int i = 0; i < 6; i++) {
red[i] = suiji.nextInt(33); // 随机分配0到33的整数
if (red[i] == 0) {
i--;
}
if (i == -1) {
i = 0;
}
for (int j = 0; j < i; j++) {
while (red[i] == red[j]) {
i--;
}// 发现相同的从新回去生成一个
}
}
System.out.print("红球:");
for (int k = 0; k < red.length; k++) {
System.out.print(red[k] + " ");// 输出数组red
}
System.out.println(); // 空一行
System.out.println("蓝球:" + blue);
} else{
System.out.println("fuck you~");
System.exit(0);
}
selectRandom();
}
}
重构个方法,然后用递归调用就可以实现,选择N,添加了System.exit(0);代码,可以退出
‘伍’ java里面goto怎么用
或许你已经听过goto语句之争,也知道在Java中goto仍然是一个保留的keyword,但不允许使用。先来看看goto的经典使用方法:
1:statement1;
2:statement_label_for_section2:
3:statement2;
4:goto statement_label_for_section2;
可以看出 2:statement_label_for_section2: 为一代码片段(Section)的开始标记。
Java语言中不允许使用goto,但可以使用像 2:statement_label_for_section2: 一样的代码片段标记作为 break/continue的跳转目标。
相关标准文件请参见:<<Java Language Spec. >>14.7 Labeled Statements
应用
嵌套循环中,我有时会需要从内循环中直接跳到外循环。用Labeled Statements就可以方便实现。
1: for(int I1 = 0; I1 < 10; I1++) {
2: loop1:
3: for(int I2 = 0; I2 < 20; I1++) {
4: break loop1;
5: }
6: }
continue的用法与break的用法是一样的。
Java语言中还有很多没有广泛应用的小点子。请参见:<<Java Language Spec. >>
Blocks
<<Java Language Spec. >>14.2 Blocks
或许你跟我一样都是个懒鬼。特别在Test Case 代码当中,我经常需要在同一Method中定义一大堆的对象,这些对象的操作大者是大同小异的,你应该知道我在想什么了:Copy&Past。而为每个对象都起一个不同的名字是件痛苦的事。同时这些对象往往只是短命鬼。
1:import java.util.ArrayList;
2:import java.util.Collection;
3:
4:public class T2 {
5:
6: public static void main(String[] args) {
7: {
8: Collection c = new ArrayList();
9: c.add( "1" );
10: c.clear();
11: }
12: {
13: Collection c = new ArrayList();
14: c.add( "2" );
15: c.clear();
16: }
17: }
18:
19:}
‘陆’ java有没有goto
有,goto,const都是Java的保留字,但是一旦出现这两个关键字程序就不能通过编译,但是有趣的是用一些反编译工具(比如Jad)对某些java程序进行反编译时会发现大量的存在goto(即使这些程序源码不是如此),说明人写代码是给人看的,goto被人诟病因为他破坏了程序按顺序执行的基本准则,但是编译器编译时优先考虑的是如何让该代码更有效率的让计算机执行
‘柒’ java中有没有goto语句
java确实提供了goto语句,并且它是保留的关键字,但是JVM并没有给它提供任何的实现。或许是java并没打算放开使用这种机制。
不过,我则会采用特殊手段实现类似goto的功用:
importstaticjava.lang.System.out;
classTest{
publicstaticvoidmain(String[]args)throwsException{
intstep=1;
intsum=0;
loop:
for(;true;){
if(step<=100){
sum+=step;
step++;
continueloop;
}elsebreak;
}
out.println("sum="+sum);
}
}
‘捌’ java中goto是关键字吗
goto是java语言中的保留字,目前还没有在java中使用。
其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。而在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。但是在java语言中,goto这个词只是作为了保留字,还没有使用。那是因为java语言讲究简单,方便。
‘玖’ Java有没有goto
goto是java语言中的保留字,目前还没有在java中使用。
其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。而在结构化程序语言
中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难...”
‘拾’ 请问JAVA中如何实现无条件跳转呢,不能用goto呢
Java中已经不支持goto,
但是continue和break两个关键词可以在后面加标号支持跳转。
例如
for(...){
.....
flag1: aaaa=xxxxx;
......
continue flag1;
}