C语言goto语句如何使用?
我想这样就要就要使用跳转语句,网上说要用标签但是试了以后语法报错
现在的疑问是,使用goto语句需要加特殊的抬头吗?(就像是#include “stido.h”之类的)
具体我该如何实现?
下面是一段精简的代码,用户进入界面后按1/0进入不同的功能,当执行好ex()任务后,如何用goto语句让程序回到选择case的界面?
不然的话完成ex()后程序就退出了 展开
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语句也称为无条件转移语句,其一般格式如下: goto 语句标号;
其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
#include"stdio.h"
int main(void)
{
int n=0;
printf("input a string :\n");
loop: if(getchar()!='\n')
{
n++;
goto loop;
}
printf("%d",n);
}
goto语句在上例中的作用就是当接收用户输入的字符不是回车符的时候就跳转到if语句进行判断用户输入的字符,也就是说如果用户输入回车,那么就输入结束,转而执行printf("%d",n);
要回到哪里,就在哪里加个标号,例如:
label1: /* <----- 这里加个标号, goto 语句就可以转到这里了 */
switch(i){
case 1:ex(0);goto label1; /* 有 goto 就不需要 break 了 */
另,使用goto语句需要加特殊的抬头。
goto会破坏程序的结构性,所以能不用尽量别用。
原则上是最好不要用,因为程序要讲究结构性、可读性,goto语句会破坏这点。
但万事不是绝对的,什么时候应该用goto语句呢?
只有在程序做的很大,有动一下痛全身的感觉时,但只要加个goto语句却能省下很多时间和麻烦,这时用goto语句比较好。