goto语句C语言(c语言goto的用法)

C语言的goto命令是什么?

C语言中的goto语句表示的是跳转到指定的地方,但一般都不使用,因为会造成混乱,而且用goto语句实现的功能,C语言可以用continue和break这两个辅助循环语句来实现,但是当有很多嵌套循环的时候,想要在个时刻终止所有的循环,这时候用goto语句就很快捷了,因为break跳出循环的只是当前的循环。

c语言goto 语句怎么错了

  • 源程序段#include stdio.htypedef struct complex{float x,y;}Complex;Complex Sub(Complex a,Complex b){Complex c;c.x=a.x-b.x;c.y=a.y-b.y;return c;}Complex Div(Complex a,Complex b){Complex c;c.x=(a.x*b.x+a.y*b.y)(b.x*b.x+b.y*b.y);c.y=(a.y*b.x-a.x*b.y)(b.x*b.x+b.y*b.y);return c;}Complex Muti(Complex a,Complex b){Complex c;c.x=a.x*b.x-a.y*b.y;c.y=a.x*b.y+a.y*b.x;return c;}Complex Add(Complex a,Complex b){Complex c;c.x=a.x+b.x;c.y=a.y+b.y;return c;}void print(Complex a){printf("answer is %f+%fin",a.x,a.y);}void main(){Complex a,b,c;char i;begin:printf("choose what u wanna do + – * :");scanf("%c",&i);switch (i){case +: {scanf("%f+%fi",&a.x,&a.y);scanf("%f+%fi",&b.x,&b.y);c=Add(a,b);break;} case -: {scanf("%f+%fi",&a.x,&a.y);scanf("%f+%fi",&b.x,&b.y);c=Sub(a,b);break;} case *: {scanf("%f+%fi",&a.x,&a.y);scanf("%f+%fi",&b.x,&b.y);c=Muti(a,b);break;} case : {scanf("%f+%fi",&a.x,&a.y);scanf("%f+%fi",&b.x,&b.y);c=Div(a,b);break;} default:goto begin;}print(c);}是什么原因导致后面都无法运行啊
  • 你在goto begin: 之前写一个 getchar(); 看看

为什么不提倡使用goto语句

目前的编程语言都采用结构化语言,在结构化程序设计中一般不主张使用goto语句,原因是:

1、在程序比较简单时用goto语句是比较灵活的,但是当程序比较复杂时很容易造成程序流程的混乱。

2、利用goto语句编写程序,对于后面看程序的人是很难理解的。

3、调试程序的过程也会变得很困难。

goto语句

  • 做一课件,在一按钮上设置goto到第三帧,其中的元件也goto到了第三帧,怎样解决。谢谢。
  • 网上随便一查就有一大堆

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

  • 学戏曲的地方

C语言 这段代码问题在哪?我想实现输入6显示“你赢啦” 练习题必须要求goto语句 但输入6赢了输了都显示

  • #include "stdio.h"main(){int a = 0;printf("请输入数字:");scanf_s("%d",&a);if (a == 6)goto win;elsegoto lose;win:printf("您赢了!!!n");lose:printf("您输了!!! n");return 0;}
  • 改成这样,因为lose和win只是标志,你如果到了win的语句,会一直执行到程序结束#include "stdio.h"main(){int a = 0;printf("请输入数字:");scanf("%d",&a);if (a == 6)goto win;elsegoto lose;win:printf("您赢了!!!n");return 0; lose:printf("您输了!!! n");return 0;}

关于goto语句的问题。

  • #includestdio.h#includestring.hint main(){ char str[100]; printf("输入一个小于100的字符串n"); scanf("%s",str); if(strlen(str)10) { goto Label1; } else { goto Label2; } Label1: printf("输入内容没有超过10个字符"); Label2: printf("输入内容达到或超过了10个字符"); return 0;} 为什么我输入一个小于10的字符串,程序又显示“输入内容没有超过10个字符”同时也显示“输入内容达到或超过了10个字符”?
  • Label1 就是个标志位,转到label1之后还会继续执行下面的代码,同样label2 也是个标识,不影响代码继续顺序执行、尽量不要用goto语句,很难控制代码执行顺序并且容易出错。