C语言中goto语句的用法??举例来说。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中goto语句的用法??举例来说。相关的知识,希望对你有一定的参考价值。

1、C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置。用法就是“goto label……label:”。下面用一个示例来演示具体的用法,这里先新建一个C语言的程序文件,演示使用的是Visual Studio软件作为开发工具:

2、输入goto语句应用代码,这里先定义两个变量a和b,然后用printf函数打印两句话,直接用goto语句强制跳转到打印b语句的end标记位置,此时a的打印就不会执行了:

3、编译执行程序,按下crtl+F5打开命令行,就可以看到执行的结果,打印出了b语句,和预期的结果一样。以上就是C语言中goto的用法:

参考技术A

goto语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以goto语句又被称为是无条件跳转语句。

它的语法如下

goto label;

//其它代码

label:

其中,label为我们自己定义的一个标签,定义的规则与变量的命名相同,它的位置是不固定的,它可以写在goto语句的后面,也可以写在它的前面,然而goto语句只能在一个函数内部跳转,它并不允许跳转出一个函数外部。

int day = 1;

loop:

if (day <= 31)

printf("%d\\n", day);

day++;

goto loop;

上面程序就是利用了goto和if语句来实现了循环功能,它与while实现的循环功能一样,其中loop为我们定义的一个label(标签)。

扩展资料:

使用goto语句的建议

1) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。

2) 使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。

3) 不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。

4)应该避免向两个方向跳转。这样最容易导致"面条代码"。

参考资料来源:百度百科-goto语句

参考技术B

goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。

如: label: i++;

loop: while(x<7);

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

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

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

扩展资料:

Pascal

格式 goto <标号>;

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

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

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

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

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

NASM描述:

mov ax,1

mov bx,0

start:add bx,ax

inc ax

cmp ax,11;比较指令

jzend ;零转移

jmp start

end:

;

;start: end:是标号

参考资料:百度百科—goto语句

参考技术C

用法如下:

goto语句也称为无条件转移语句,其一般格式如下:

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

例子: label: i++;

loop: while(x<7);

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

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

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

扩展资料:

goto语句的讨论

(1)goto语句确实有害,应当尽量避免;

(2)完全避免使用goto语句也并非是个明智的方法,有些地方使用goto语句,会使程序流程更清楚、效率更高。

(3)争论的焦点不应该放在是否取消goto语句上,而应该放在用什么样的程序结构上。其中最关键的是,应在以提高程序清晰性为目标的结构化方法中限制使用goto语句

参考资料:百度百科goto语句



参考资料:百度百科 C语言



参考技术D

goto语句也称为无条件转移语句,其一般格式如下: 

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

C语言不限制程序中使用标号的次数,但各标号不得重名。

goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

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

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

以下例句,当i等于5时,程序转向stop标签处语句。

// Example of the goto statement
void main()

    int i, j;

    for ( i = 0; i < 10; i++ )
    
        printf( "Outer loop executing. i = %d\\n", i );
        for ( j = 0; j < 3; j++ )
        
            printf( " Inner loop executing. j = %d\\n", j );
            if ( i == 5 )
                goto stop;
        
    
    /* This message does not print: */
    printf( "Loop exited. i = %d\\n", i );
    stop: printf( "Jumped to stop. i = %d\\n", i );

关於在ABAP中的SELECT语句的一种用法的请教。

例如我现在有一个表‘ABCD’ FILED: A type c, Btype c, Ctype c, Dtype i.如我想要得到像在SQL SERVER中使用如下语句的效果: select a,b,c,sum( iif(d>0,-d,d) ) as T_qty from ABCD group by A,B,C请问我应该如何在ABAP中实现???????急!!!多谢。

参考技术A 有很多实现方法,比如可以这样:data: a like abcd-a,b like abcd-b,c like abcd-c,d like abcd-d.select a,b,c,sum(d) into ( a,b,c,d ) from ABCD group by A,B,C.d = d * -1 ....endselect.

以上是关于C语言中goto语句的用法??举例来说。的主要内容,如果未能解决你的问题,请参考以下文章

跳转语句 break;continue; return; goto 区别用法

Goto语句

25)C语言之goto语句

冒号在C语言中起啥作用

嵌入式C语言,我劝你少用GOTO语句!

C/Go语言 Goto