您的位置:

javagoto,java goto怎么用

本文目录一览:

Java有没有goto?

goto是java语言中的保留字,目前还没有在java中使用。

其实goto这个词是C语言中的,goto语句通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。而在结构化程序语言

中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难...”

java中有没有goto语句

java确实提供了goto语句,并且它是保留的关键字,但是JVM并没有给它提供任何的实现。或许是java并没打算放开使用这种机制。

不过,我则会采用特殊手段实现类似goto的功用:

import static java.lang.System.out;

class Test{

   public static void main(String[] args) throws Exception {

    int step=1;

    int sum=0;

    

    loop:

     for(;true;){

     if(step=100){

     sum+=step;

     step++;

     continue loop;

     }else break;

     }

    

    out.println("sum="+sum);

 }

}

java goto语句

goto是从这段程序语句块跳转到其他程序代码;continue是结束本次循环(循环一般不是1次,是多次),转去做循环条件判断;break是结束循环,即循环这部分代码不再执行了。

java支持goto语句吗?

准确来说,java中没有goto这样的语句,当然即使在c中也不推荐使用。

在java中可以找到实现类似功能的方法,该方法仅限于循环嵌套跳转到外层循环的情况。例如你可以在外层循环上使用lablename:(lablename是自定义标签名)的方式标注,在内循环中,可以使用break lablename;或者continue lablename跳转到外循环上。这样就可以模拟出类似goto语句的功能。

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中定义一大堆的对象,这些对象的操作大者是大同小异的,你应该知道我在想什么了:CopyPast。而为每个对象都起一个不同的名字是件痛苦的事。同时这些对象往往只是短命鬼。

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:}