Java冷门用法,类似goto语句

goto语句,又被称为无条件转移语句。

1

goto 语句标号;

其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与goto句配合使用。如:

1

2

3

label: i++;

loop: while(x<7);

goto loop;

C语言不限制程序中使用标号的次数,但各标号不得重名。goto 语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

在Java语言中,是保留了goto语句的,但是没有对应的跳转功能,不过也有可以实现类似goto语句的功能,

continue/break :lable

其使用匹配类似于{ }的匹配,如图:

在标签名一样的情况下,跳转到与之相近的,代码顺序在此之前的标签位置,但其并不是为了实现goto语句,而是为了在多重嵌套的情况下,更好的跳出循环到需要的一层循环。

  而且标签只能在for循环,while,do...while循环和if语句之前,在对应的地方使用contiue或break加:加标签的方式进行跳转。

 一下是其他语言的goto语言的使用,可以稍作了解(一下来源于百度)

C# 语言

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

using System;

using static System.Console;

class Program

{

    public static Int32 Main(String[]args){ 

            int n = 0; 

            WriteLine("input a string :\n"); 

            judge: if (Read()!= '\r') { 

                n++; 

                goto judge; 

            } 

            WriteLine("{0}", n); 

            return 0; 

        } 

}

C语言

统计从键盘输入一行字符的个数。

1

2

3

4

5

6

7

8

9

10

#include<stdio.h>

int n=0;

int main(void) {

    printf("input a string: ");

        judge: if (getchar()!='\n') {

        n++;

        goto judge;

    }

  printf("output: %d\n",n);

}

例如输入:abcdefghijklmnopqrstuvwxyz

然后回车Enter

输出:26

本例用if语句和goto语句构成循环结构。当输入字符不为'\n'时即执行n++进行计数。

然后转移至if语句循环执行,直至输入字符为'\n'才停止循环。

汇编语言

goto语句与汇编语言里面的jmp指令相同,(无条件转移

1

1+2+3........+8+9+10

NASM描述:

1

2

3

4

5

6

7

8

9

10

mov ax,1

mov bx,0

start:add bx,ax

inc ax

cmp ax,11;比较指令

jzend ;零转移

jmp start

end:

;

;start: end:是标号

Pascal

1

格式 goto <标号>;

其中标号需要申请,在程序开头写label <标号1>,<标号2>,……;

其中,标号必须为四位以内的正整数。

在该段落内还需要有<标号>:语句 表示将要转向的方向。

delphi

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

//Goto语句用在跳转行号, 可以跳转到当前结构层内任意位置.

//必须在声明处用label关键字声明行号.

//由于Goto语句会破坏程序的结构, 不推荐使用.

var

a,b: Integer;

label

X,Y;

begin

if a > b then

goto X

else

goto Y;

X:

WriteLn('a > b');

Y:

WriteLn('b > a');

end;

批处理

使用冒号标记

1

2

:start

goto start

按键精灵

使用rem做标记,可以用中文

rem 开始

goto 开始

VBA

使用冒号做标记,但是跟批处理的不一样,冒号在后面

1

2

start:

goto start

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值