C语言goto语句如何使用?

如题所述

第1个回答  2022-11-16

goto语句使用:

1、C#语言中

using System;

using static System.Console;

class Program

{

public static Int32 Main(String[]args){

int n=0;

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

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

n++;

goto loop;

}

WriteLine("{0}",n);

return 0;

}

}

2、C语言中

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

#include<stdio.h>

int n=0;

int main(void){

printf("input a string:");

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

n++;

goto loop;

}

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

}

例如输入:abcdefghijklmnopqrstuvwxyz

然后回车Enter

输出:26

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

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

3、汇编语言中

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:是标号

Pascal

格式goto<标号>;

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

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

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

4、delphi中

//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;

扩展资料:

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

如:label:i++;

loop:while(x<7);

goto:loop

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

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

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

参考资料来源:

百度百科——goto语句

相似回答