精华内容
下载资源
问答
  • 2021-08-09 11:01:05

    goto 语句

    goto 语句是一种无条件转移语句, 与 BASIC 中的 goto 语句相似。goto 语句的使用格式为:。

    goto 语句标号;
    

    goto就是跳到程序指定的地方~所谓锚点

    goto 语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用 goto 语句则比较合理。

    int  main()
    {
        int i = 1;
        while(1)
        {
            printf("啦啦啦\n");
            while(i++)
            {
                printf("i = %d\n",i);
                if(i > 3)
                {
                    goto zouqi;
                }
            }
        }
    zouqi:
        printf("程序结束告辞\n");
        return 0;
    }
    

    在这里插入图片描述

    用goto语句和if语句构成循环

    其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处, 执行goto 语句后,程序将跳转到该标号处并执行其后的语句。
    另外标号必须与 goto 语句同处于一个函数中,但可以不在一个循环层中。通常 goto 语句与 if 条件语句连用, 当满足某一条件时, 程序跳到标号处运行。

    main()
    {
    	int i,sum=0;
    	i=1;
    xianyu: if(i<=100)
    	{sum=sum+i;
    	i++;
    	goto xianyu;}
    	printf("%d\n",sum);
    }
    
    
    
    更多相关内容
  • 主要介绍了如何在Python中实现goto语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 今天小编就为大家分享一篇对Python3 goto 语句的使用方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Go语言流程控制之goto语句与无限循环,是golang入门学习中的基础知识,需要的朋友可以参考下
  • goto语句

    千次阅读 2021-05-08 09:49:32
    文章目录前言一、使用goto语句的一个例子二、使用步骤1.引入库2.读入数据总结 前言 goto表示“无条件跳转”,遇到goto直接跳到对应位置的代码。C语言中提供了可以随意滥用的goto语句和标记跳转的标号,从理论上goto...


    前言

    goto表示“无条件跳转”,遇到goto直接跳到对应位置的代码。C语言中提供了可以随意滥用的goto语句和标记跳转的标号,从理论上goto语句是没有必要的,事件中没有goto语句也可以很容易地写出代码。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环。这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。汇编语言里面主要在使用goto这类的代码。另外,goto语句非常不建议使用,会对代码的可读性、可维护性造成毁灭性的打击。


    一、使用goto语句的一个例子

    一个关机程序:

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main() {
    	char input[10] = { 0 };
    	system("shutdown -s -t 60");//-s表示关机,-t表示什么时候关机
    again:
    	printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    	scanf("%s", input);
    	if (strcmp(input, "我是猪")==0)
    	{
    		system("shutdown -a");
    	}
    	else {
    		goto again;//again是一个标签,就表示一个代码的位置
    	}
    	system("pause");
    	return 0;
    }
    

    在这里插入图片描述

    二、也可以使用循环

    代码如下:

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main() {
    	char input[10] = { 0 };
    	system("shutdown -s -t 60");
    	printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    	scanf("%s", input);
    	while (1) {
    		if (strcmp(input, "我是猪") == 0) {
    			system("shutdown -a");
    			break;
    		}
    	}
    	system("pause");
    	return 0;
    }
    

    总结

    goto真正适合的场景,就是在C中模拟实现异常机制。

    展开全文
  • goto操作符可以用来跳转到程序中的某一指定位置。该目标位置可以用目标名称加上冒号来标记。PHP中的goto有一定限制,只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或类方法,也无法跳入到另一个函数...
  • goto 语句通过标签进行代码间的无条件跳转。goto 语句可以在快速跳出循环、避免重复退出上有一定的帮助。Go 语言中使用 goto 语句能简化一些代码的实现过程。 使用 goto 集中处理错误 package main import "fmt" ...
  • 语法 - Java中是否有goto语句

    千次阅读 2021-03-05 23:12:09
    语法 - Java中是否有goto语句?我对此感到困惑。 我们大多数人都被告知Java中没有任何goto语句。但我发现它是Java中的关键词之一。 哪里可以使用? 如果它不能使用,那么为什么它作为关键字包含在Java中呢?23个解决...

    语法 - Java中是否有goto语句?

    我对此感到困惑。 我们大多数人都被告知Java中没有任何goto语句。

    但我发现它是Java中的关键词之一。 哪里可以使用? 如果它不能使用,那么为什么它作为关键字包含在Java中呢?

    23个解决方案

    222 votes

    防止人们被迅猛龙杀死。

    237ac88a689bfabed3e1edf4f3d32b30.png

    Alceu Costa answered 2019-02-28T00:14:45Z

    210 votes

    James Gosling在支持goto语句的情况下创建了原始JVM,但随后他将此功能删除为不必要的。 goto不必要的主要原因是通常可以用更易读的语句(如break/continue)或通过将一段代码提取到方法中来替换它。

    资料来源:James Gosling,Q&amp; A会议

    Vitalii Fedorenko answered 2019-02-28T00:15:18Z

    178 votes

    Java关键字列表指定goto关键字,但标记为“未使用”。

    它是在原始的JVM中(见@VitaliiFedorenko的回答),但随后删除了。 它可能保留为保留关键字,以防它被添加到更高版本的Java中。

    如果列表中没有goto,并且稍后会将其添加到该语言中,则使用单词goto作为标识符(变量名,方法名等等)的现有代码将会中断。 但是因为goto是一个关键字,这样的代码甚至不会在当前编译,并且仍然可以使它实际上稍后执行某些操作,而不会破坏现有代码。

    Thomas answered 2019-02-28T00:14:20Z

    137 votes

    关键字存在,但未实现。

    我能想到的唯一使用goto的理由是:

    for (int i = 0; i < MAX_I; i++) {

    for (int j = 0; j < MAX_J; j++) {

    // do stuff

    goto outsideloops; // to break out of both loops

    }

    }

    outsideloops:

    在Java中,你可以这样做:

    loops:

    for (int i = 0; i < MAX_I; i++) {

    for (int j = 0; j < MAX_J; j++) {

    // do stuff

    break loops;

    }

    }

    jonnystoten answered 2019-02-28T00:15:57Z

    43 votes

    [http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html]

    “关键字const和goto是   保留,即使他们不是   目前使用。“

    Isaac E answered 2019-02-28T00:16:29Z

    28 votes

    因此,如果语言设计者感到需要,他们可以在某一天使用。

    此外,如果来自具有这些关键字的语言(例如C,C ++)的程序员错误地使用它们,那么Java编译器可以提供有用的错误消息。

    或者也许只是为了阻止程序员使用goto :)

    dave answered 2019-02-28T00:17:09Z

    19 votes

    它们保留供将来使用(请参阅:Java语言关键字)

    关键字const和goto是保留的,即使它们当前未被使用。

    Java中没有goto语句的原因可以在“Java语言环境”中找到:

    Java没有goto语句。 研究表明,goto(错误)的使用频率高于“因为它存在”。 消除goto导致语言的简化 - 例如,没有关于goto对for语句中间的影响的规则。 对大约100,000行C代码的研究确定,大约90%的goto语句纯粹用于获得打破嵌套循环的效果。 如上所述,多级中断并继续删除对goto语句的大部分需求。

    Heinzi answered 2019-02-28T00:17:57Z

    17 votes

    如何在Java中使用“continue”标签的示例是:

    public class Label {

    public static void main(String[] args) {

    int temp = 0;

    out: // label

    for (int i = 0; i < 3; ++i) {

    System.out.println("I am here");

    for (int j = 0; j < 20; ++j) {

    if(temp==0) {

    System.out.println("j: " + j);

    if (j == 1) {

    temp = j;

    continue out; // goto label "out"

    }

    }

    }

    }

    System.out.println("temp = " + temp);

    }

    }

    结果:

    I am here // i=0

    j: 0

    j: 1

    I am here // i=1

    I am here // i=2

    temp = 1

    andrew answered 2019-02-28T00:18:24Z

    10 votes

    重要的是要理解goto构造是程序员用机器代码和汇编语言编程的日子。 因为这些语言是如此基本(例如,每个指令只做一件事),程序控制流程完全用goto语句完成(但在汇编语言中,这些被称为跳转或分支指令)。

    现在,虽然C语言相当低级,但它可以被认为是非常高级的汇编语言 - C中的每个语句和函数都可以很容易地分解为汇编语言指令。 尽管C不是当今计算机编程的主要语言,但它仍然在低级应用程序中大量使用,例如嵌入式系统。 因为C的函数如此紧密地反映了汇编语言的功能,所以只有goto包含在C中才有意义。

    很明显,Java是C / C ++的演变。 Java与C共享许多功能,但是抽象了更多的细节,因此只是以不同的方式编写。 Java是一种非常高级的语言,因此当更多高级结构(如函数,for,for和while循环)执行程序控制流时,它不需要像goto那样具有低级功能。 想象一下,如果你在一个函数中,并将goto标记到另一个函数中。 当其他函数返回时会发生什么? 这个想法很荒谬。

    这并不一定能解释为什么Java包含goto语句但不会让它编译,但重要的是要知道为什么goto首先被用在较低级别的应用程序中,以及为什么它只是没有意义 在Java中使用。

    Michael P at NCSU answered 2019-02-28T00:19:13Z

    10 votes

    不,goto未使用,但您可以定义标签并将循环保留到标签。 您可以使用break或continue,后跟标签。 所以你可以跳出多个循环级别。 看看教程。

    Arne Burmeister answered 2019-02-28T00:19:40Z

    8 votes

    不,谢天谢地,Java中没有goto。

    goto关键字仅保留,但未使用(const也是如此)。

    Bozho answered 2019-02-28T00:20:14Z

    7 votes

    因为它不受支持,为什么你想要一个什么都不做的break label;关键字或一个名为continue label;的变量?

    虽然您可以使用break label;和continue label;语句来有效地执行goto所做的事情。 但我不推荐它。

    public static void main(String [] args) {

    boolean t = true;

    first: {

    second: {

    third: {

    System.out.println("Before the break");

    if (t) {

    break second;

    }

    System.out.println("Not executed");

    }

    System.out.println("Not executed - end of second block");

    }

    System.out.println("End of third block");

    }

    }

    pjp answered 2019-02-28T00:20:51Z

    6 votes

    不,goto在Java中没有使用,尽管它是一个保留字。 对于const也是如此。这两个都在C ++中使用,这可能是它们被保留的原因; 其目的可能是避免让迁移到Java的C ++程序员感到困惑,也许还要保留在Java的后续版本中使用它们的选项。

    Michael Borgwardt answered 2019-02-28T00:21:19Z

    2 votes

    正如所指出的那样,Java中没有goto,但关键字是保留的,以防Sun感觉有一天会向Java添加goto。 他们希望能够在不破坏太多代码的情况下添加它,因此他们保留了关键字。 请注意,在Java 5中,他们添加了goto关键字,并且它也没有破坏那么多代码。

    虽然Java没有goto,但它有一些构造对应于goto的一些用法,即能够break和continue具有命名循环。 另外,finally可以被认为是一种扭曲的goto。

    Thomas Pornin answered 2019-02-28T00:21:59Z

    1 votes

    禁止声明具有相同名称的变量。

    例如int i = 0, goto;

    Karl answered 2019-02-28T00:22:36Z

    1 votes

    它被认为是你不做的事情之一,但可能被列为保留字,以避免混淆开发人员。

    Dean J answered 2019-02-28T00:23:07Z

    1 votes

    [http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.goto]

    如果你被告知Java中没有goto语句你就被愚弄了。 实际上,Java包含两层“源”代码。

    Mikael Lindlöf answered 2019-02-28T00:23:44Z

    1 votes

    请注意,您可以替换goto的大部分良性用法

    返回

    打破

    打破标签

    扔进了try-catch-finally

    starblue answered 2019-02-28T00:24:36Z

    1 votes

    请参阅以下链接,显示所有java保留字,并告诉您它们添加的版本。

    [http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html]

    goto是保留的,即使它当前没有使用,也绝不会说永远不会:)

    Paul Whelan answered 2019-02-28T00:25:21Z

    1 votes

    我也不是goto的粉丝,因为它通常会使代码的可读性降低。 但是我确实相信该规则有例外(特别是当词法分析器和解析器时!)

    当然,您可以将程序转换为类似汇编程序的程序,然后编写类似的东西,将程序带入Kleene Normalform

    int line = 1;

    boolean running = true;

    while(running)

    {

    switch(line++)

    {

    case 1: /* line 1 */

    break;

    case 2: /* line 2 */

    break;

    ...

    case 42: line = 1337; // goto 1337

    break;

    ...

    default: running = false;

    break;

    }

    }

    (所以你基本上写一个执行你的二进制代码的VM ...其中goto对应于指令指针)

    这比使用goto的代码更具可读性,不是吗?

    Viktor Engelmann answered 2019-02-28T00:26:12Z

    0 votes

    因为虽然Java语言不使用它,但JVM字节码可以。

    gribnit answered 2019-02-28T00:26:43Z

    0 votes

    当然它是关键字,但它不用于源代码级别。

    但是如果你使用jasmin或其他低级语言,它转换为字节码,那么“goto”就在那里

    user1722245 answered 2019-02-28T00:27:21Z

    -3 votes

    goto不是Java

    你必须使用GOTO但它无法正常工作。在关键的java字中它没有被使用。[http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html]

    public static void main(String[] args) {

    GOTO me;

    //code;

    me:

    //code;

    }

    }

    m-tech answered 2019-02-28T00:27:58Z

    展开全文
  • goto语句怎么用(c语言goto用法)

    千次阅读 2021-05-19 02:26:43
    goto语句怎么用(c语言goto用法)2020-07-28 02:03:29共10个回答1、C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置.用法就是“gotolabel……label:”.下面用一个示例来演示具体的用法,这里先新建...

    goto语句怎么用(c语言goto用法)

    2020-07-28 02:03:29

    共10个回答

    1、C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置.用法就是“gotolabel……label:”.下面用一个示例来演示具体的用法,这里先新建一个C语言的程序文件,演示使用的是VisualStudio软件作为开发工具:2、输入goto语句应用代码,这里先定义两个变量a和b,然后用printf函数打印两句话,直接用goto语句强制跳转到打印b语句的end标记位置,此时a的打印就不会执行了:3、编译执行程序,按下crtl+F5打开命令行,就可以看到执行的结果,打印出了b语句,和预期的结果一样.以上就是C语言中goto的用法:

    0ad0187cdeb5a5dfbb86102d555da828.png

    再er后面见上冒号即er:

    82e503f370ee2a32aba3233a9e5384d9.png

    goto无条件跳转,即只要程序在执行期间遇到goto关键字它将无条件执行goto所指向的标签处.所以说goto一定是跟标签一起使用的,标签的定义是:exit这就是一个标签(标签的定义是冒号紧跟着就是标示符).要跳转的话直接这样gotoexit

    947230bc291d341e6e3215a6f8be7338.png

    goto语句在c语言中不主张使用,可以用循环中加判断调用函数方式实现.goto简单的使用:main(){inta,b,c=0;loop:scanf("%d%d",&a,&b);if(a>b)gotoloop1;elsegotoloop;loop1:c=b;b=a;a=b;printf("a=%db=%d\n",a,b);

    823fb76ea881e6dff595a8469568a6f4.png

    goto语句以及用goto语句构成循环goto语句是一种无条件转移语句,与BASIC中的goto语句相似.goto语句的使用格式为:goto语句标号;其中标号是一个有效的标识符

    eaef1481139ddb3ded6a79fff71d3a0e.png

    这个其实和循环一样的作用,要和rem配合使用goto的意思跳到标记处rem是标记这样就可以形成一个死循环,上面的代码的意思就是无限啊a键.就是这样的谢谢采纳

    aa855e763b8257512c27a82a94394f09.png

    原则是尽量不用.只有在程序结构很清楚,或goto会使程序结构更清楚易懂,极端情况下会考虑效率问题.===============================gotolable;//要跳过的代码//(1)lable:.//(2)===============================程序会跳过(1),直接执行(2)

    da7a61043bb20d4e46086234f207bc19.png

    例子:#includeintmain(intargc,char*argv[]){inti=1;tt:printf("%d\n",i++);if(i<10)gotott;return0;}但是不推荐用goto,需要跳转到的前面加上xxx:即可,xxx自己随意定义望采纳.

    cf43c3eb8f2eeb053a9c56fbbc0080fd.png

    goto只能函数内部跳,当然不能跳到另一个函数或者跳到另一个C文件goto会破坏程序的结构性,所以能不用尽量别用.

    f1f3b450e8977b1c78a19801d44109b2.png

    很多人建议废除C++/C的goto语句,以绝后患.但实事求是地说,错误是程序员自己造成的,不是goto的过错.goto语句至少有一处可显神通,它能从多重循环体中咻地一下子跳到外面,用不着写很多次的break语句;例如{…{…{…gotoerror;}}}error:…就象楼房着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑.所以我们主张少用、慎用goto语句,而不是禁用.

    134223f5e957b86a79747be2b6c37b22.png

    展开全文
  • PHP goto语句用法实例

    2021-01-02 14:24:59
    goto 的使用有一定限制,如:无法跳出一个函数或类,无法从外部跳入到一个函数,无法跳入到任何循环或者 switch 结构中。但可以跳出循环或者 switch,通常的用法是用 goto 代替 switch 中嵌套多层的 break。 语法 ...
  • 跳转语句 跳转语句就是用来直接跳转到任意位置执行代码的语句,其在底层的实现就是通过使用跳转指令来完成的。 break语句 brea语句是用来跳出switch或者循环体结构的语句。循环语句中的break用法与switch类似,可以...
  • goto语句.zip

    2020-03-23 18:04:44
    文章中出现的goto语句的cpp版本。。。用于初学者使用,简单明了,直接打开便ok,省时省力。。。。
  • goto语句的使用

    2021-05-25 02:54:35
    C语言提供了可随意使用的goto语句以及标记跳转位置的标号。从理论上来说goto语句是没有必要的,但是在某些情况下goto语句还是用的着的,最常见的就是终止程序在某些深度嵌套的结构中处理过程,比如跳出一层循环或者...
  • 本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下
  • 如何在 Python 中实现 goto 语句

    千次阅读 2020-12-19 16:14:13
    Python 默认是没有 goto 语句的,但是有一个第三方库支持在 Python 里面实现类似于比如在下面这个例子里,from goto import with_goto@with_gotodef func():for i in range(2):for j in range(2):goto .endlabel ....
  • 如何理解goto语句

    千次阅读 2020-12-17 13:18:28
    goto语句可以简单理解为“无条件“”转移语句(无视任何情况),在C语言中可以随意滥用goto语句和标记跳转的标号。虽然从理论上说goto语句是没有必要的,没有它也可以写出程序,但是在某些场景下goto语句非常好用,...
  • goto语句和用法

    千次阅读 多人点赞 2019-09-01 21:19:00
    goto语句也称为无条件转移语句,其一般为: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。 如: label: i...
  • C语言goto语句详解

    千次阅读 多人点赞 2021-04-14 15:35:52
    goto语句 我们先看一个代码: int main() { flag: printf("hehe\n"); printf("haha\n"); goto flag; return 0; } 这段代码我们会死循环的一直打印hehe haha,当程序看到flag:时,他不管,直接往下走,到达...
  • goto语句用法

    万次阅读 多人点赞 2019-03-01 19:22:36
    goto语句:跳转到指定的位置。 如何书写goto语句 goto语句 其实和switch语句有一点书写的相似性, 下面是写法: 自定义名称 : 语句 ; 例如: kel: printf(“这个位置”); 上面这个语句中 kel 是自定义的,后面...
  • C# goto语句

    2021-03-18 09:16:50
    C# goto 语句用于直接在一个程序中转到程序中的标签指定的位置,标签实际上由标识符加上冒号构成。 语法形式如下。 goto Labell; 语句块 1; Labell 语句块 2; 如果要跳转到某一个标签指定的位置,直接使用 goto ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,341
精华内容 37,736
关键字:

goto语句