go语言goto语句报错,go got it

为何goto语句无法实现循环?

1楼答案完全错误,有没有用过goto?

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、龙里网络推广、微信平台小程序开发、龙里网络营销、龙里企业策划、龙里品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供龙里建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

建议楼主不要用goto语句,程序员最忌讳看goto程序,程序一复杂就很烦,这个程序还简单

先说错误原因:

else if (go==' '); //这里多了个分号";"所以一定执行goto end;

改进:去掉分号就可以了,像二楼那样改达不到程序目的

程序中很多错误,分析下:

#include stdio.h

#include conio.h

int zhong(int a, int b){return (a+b);}

int guo(int a, int b){return (a-b);}

int wo(int a, int b){return (a*b);}

int ni(int a, int b){return (a/b);}

int x,y,z,go; //go最好用char类型

main()

{

int zhong(int a, int b);

int guo(int a, int b);

int wo(int a, int b);

int ni(int a, int b);

get:

printf("please input one number!\n");

scanf("%c",go); //输入时必定包含'字符'和'\r'(回车),这里只读取字符,'\r'留在流中,下次运行时会读取'\r',建议:用getchar().

if(go=='+')

{

int zhong(int a, int b);

scanf("%d%d",x,y);

z=zhong(x,y);

if ((x||y)!=' ') //错误,必定成立,因为(x||y)的值为1或0,永远不等于' '(空格字符)

{

printf ("%d+%d=%d\n",x,y,z);

}

else if ((x||y)==' ') //与上同理

{

printf("end\n");

}

}

else if (go=='-')

{

int guo(int a, int b);

scanf("%d%d",x,y);

z=guo(x,y);

if((x||y)!=' ') //error

{

printf ("%d-%d=%d\n",x,y,z);

}

else if ((x||y)==' ') //error

{

printf("end\n");

}

}

else if (go=='*')

{

int wo(int a, int b);

scanf("%d%d",x,y);

z=wo(x,y);

if((x||y)!=' ') //error

{

printf ("%d*%d=%d\n",x,y,z);

}

else if ((x||y)==' ') //error

{

printf("end\n");}

}

else if (go=='/')

{

int ni(int a, int b);

scanf("%d%d",x,y);

z=ni(x,y);

if ((x||y)!=' ') //error

{

printf ("%d/%d=%d\n",x,y,z);

}

else if ((x||y)==' ') //error

{

printf("end\n");

}

}

else if (go==' '); //错误在这里,去掉";"就可以了

{

goto end;

}

goto get;

end:

printf("ByeBye!\n");

getch();

}

还有,除法会遇到圆整问题,要x,y,z使用double类型

goto语句

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

如: label: i++;loop: while(x7);goto loop.

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

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

go to语句使用原则:

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

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

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

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

以上内容参考:百度百科—goto语句

为什么C语言中的go to 语句老师说要小心使用?注意的地方是什么?

goto语句称为无条件转移语句,通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。而且,goto语句一般可以用其他语句来代替。

当然,goto语句也有其优势,例如可以用goto语句一次性跳出多重循环,而不需要使用多个break语句一步一步地跳出,从而使代码更为简洁。

在C语言中使用goto语句的注意事项如下:

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

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

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

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

所以说,goto语句要小心使用。


网站栏目:go语言goto语句报错,go got it
文章链接:http://myzitong.com/article/dsgopep.html