社区
.NET技术其他语言
帖子详情
为什么在C语言中要引入goto语句和if语句构成的循环,而在编程过程中又不提倡使用,急!!!
gooddesign
2003-06-12 06:42:37
1、为什么在C语言中要引入goto语句和if语句构成的循环,而在编程过程中又不提倡使用
2、程序举例,以说明其优劣性
...全文
523
24
打赏
收藏
为什么在C语言中要引入goto语句和if语句构成的循环,而在编程过程中又不提倡使用,急!!!
1、为什么在C语言中要引入goto语句和if语句构成的循环,而在编程过程中又不提倡使用 2、程序举例,以说明其优劣性
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liduke
2003-06-17
打赏
举报
回复
就好比吃吗啡,治病有效,但轻易不吃
Siney
2003-06-16
打赏
举报
回复
在多层嵌套结构中,如果你想一下就跳到最外层循环,用goto再合适不过,但是值得注意的是,如果你写出了这样的代码,说明你的程序结构有待改善,因为他是可以化简的
Bobby
2003-06-15
打赏
举报
回复
仅作为跳出多重循环的时候用
delphi0302
2003-06-15
打赏
举报
回复
:)
erictang2003
2003-06-15
打赏
举报
回复
注意C# 任然保留了 GOTO , 它说有只有一种情况有用: 就是 SWITCH 跳出,不过我没试过.
zjy6631
2003-06-15
打赏
举报
回复
什么地方需要goto和if构成的循环,没有人愿意帮忙吗?
在汇编中,跳转语句使用的很频繁的,但在结构化编程中,为了程序的可读性,可维护性,尽量避免用goto 语句.但有时用循环,赋值,条件语句解决不方便的,用goto语句,反而更直观。如Anstinus(笨笨龙) 所举的例子。编程中,为了程序的可读性,最好不用。
Volition2k
2003-06-14
打赏
举报
回复
用 c 语言的时候,错误处理的时候用的比较多。
用 c++ 的时候较少。
lengxue
2003-06-14
打赏
举报
回复
我们国家在制造枪,但也没提倡大家都使用枪啊
但是在战斗这种特殊情况就要使用了
ThinkX
2003-06-14
打赏
举报
回复
为什么有goto: 因为它有用!
为什么不提倡 goto:因为如果用不好,会有副作用,而且是大部分人不一定用好它。
如果你知道它的利弊,在可以安全使用goto的场合可以使用。
Anstinus
2003-06-14
打赏
举报
回复
不好意思,错了一点,goto版本中的
if(found)
break;
两行应该删掉
Anstinus
2003-06-14
打赏
举报
回复
适当地用goto可以简化程序结构,下面举个例子。
break只能退出内层循环,在嵌套的循环中比较麻烦,使用goto可以解决这个问题:
不用goto的版本:
bool found = false;
for(i = 1; i < 100; i++)
{
int* item = other[i];
for(j = 1; j < 1000; j++)
{
if(item[j] == 66)
{
//do something
found = true;
break;
}
}
if(found)
break;
}
用goto的版本:
for(i = 1; i < 100; i++)
{
int* item = other[i];
for(j = 1; j < 1000; j++)
{
if(item[j] == 66)
{
//do something
goto exit;
}
}
if(found)
break;
}
exit:
//other codes
以上的只是两层的循环,如果有多层循环,有多个需考虑的条件,就要多个象found这样的标识变量用以适当得退出外层循环,结构会变得很复杂,用一个goto就可以解决问题
zhuanxin
2003-06-13
打赏
举报
回复
在某些性能需求很高的地方, 可以直接用
君不见 汇编 语言那些跳转指令吗?
je jg jl ............
都是 goto 啊
defencez
2003-06-13
打赏
举报
回复
关于GOTO语句的争论,由来已久,至今的结论为尽量少用
原因有:
1、导至程序可读性差,可维护性也不好。
2、GOTO可被其他语句替换
3、不符合结构化编程的思想,有可能打破低耦合、高内聚的软件工程方法学。
个人观点:
可以不用。
gzyzljk
2003-06-13
打赏
举报
回复
label:
string choice;
string yesno;
writeln('Enter you choice:(A-D)');
writeln('a:......');
writeln('b:.......');
....
choice=readln();
if choice=='a' then
.....
writeln('quit?');
yesno=readln();
if yesno='n' then GOTO label;
......
一个不太好的例子(伪码),呵呵
gzyzljk
2003-06-13
打赏
举报
回复
存在即有其道理...
也就多了一个选择...
lingyunfeipu
2003-06-13
打赏
举报
回复
偶尔用用挺方便的哦
gooddesign
2003-06-13
打赏
举报
回复
什么地方需要goto和if构成的循环,没有人愿意帮忙吗?
sentimental
2003-06-13
打赏
举报
回复
适当使用.
如用在退出多重循环的时候.
dahuzizyd
2003-06-13
打赏
举报
回复
就象一位大师的比喻,降落伞虽然不是经常用,但是在要用到它的时候它就是最需要的了。
我想这也一样,提供了这个方法,在某些真正需要的时候就会发挥它的作用了,关键在与程序员自己的使用。
dw99413145
2003-06-13
打赏
举报
回复
个人认为,在没有办法的前提下,才用goto+if结构
我的第一个作品就用了goto+if结构,是分班的算法:随机数+S型算法。
效率还是可以!
哈哈!
加载更多回复(4)
C语言
:goto
循环
语句
goto语句
构成
循环
在介绍
C语言
的
循环
结构之前,先介绍一种采用非结构化程序设计的方式来
构成
的
循环
,即
使用
无条件转移语句
goto语句
。 它的一般格式如下:
goto语句
标号: 说明:
goto语句
把程序的控制流转移到在
goto语句
中
指定的标号之后的第一条语句。 标号是跟有“:”的标识符,它必须与引用它的
goto语句
在同一个函数
中
,但可以不在同一个
循环
层
中
。标号的命名规则与变量名相同,即由字母、...
c语言
程序用if
循环
,
if语句
的用法
循环
语句
求助1.
if语句
的一般格式if(表达式){语句组1;}[else{语句组2;} ](1)
if语句
中
的“表达式”必须用“(”和“)”括起来。(2)else子句(可选)是
if语句
的一部分,必须与if配对
使用
,不能单独
使用
。(3)当if和else下面的语句组,仅由一条语句
构成
时,也可不
使用
复合语句形式(即去掉花括号)。2.
if语句
的执行
过程
(1)缺省else子句时当“表达式”的值不等于0(即判定为“逻辑...
C语言
中
的分支语句和
循环
语句(
if语句
、switch语句、while
循环
、for
循环
、do...while
循环
、
goto语句
)
C语言
中
if语句
、switch语句、while
循环
、for
循环
、do...while
循环
、
goto语句
简介和基本运用
c语言
中
的
goto语句
,
goto语句
的
使用
在
c语言
中
,
goto语句
与分支语句if,switch不同,也和
循环
语句while,for,do...while不同,
goto语句
被称为无条件转移语句,也被称为转向语句,其实和break,return语句是同一个类型。
goto语句
的
使用
一般都需要一个again进行配合,当
使用
goto语句
时,程序会转跳回again处重新运行again后的程序。下面是让电脑强制关机的程序,并且运用了
goto语句
。
【
C语言
】
C语言
if选择语句总结
C语言
虽然有许多运算符,但是它拥有的语句却相对较少。return语句和表达式语句。选择语句
if语句
和switch语句执行规则是在一组可选项
中
选择一条特定的执行路径。重复语句while语句,do语句和for语句支持重复(
循环
)操作。跳转语句break语句,continue语句和
goto语句
导致无条件地跳转到程序
中
的某个位置。return语句也属于此类。复合语句:把几条语句组合成一条语句。空语句:不执行任何操作。接下来本片文章着重讨论选择语句和复合语句。在
使用
if。
.NET技术其他语言
1,979
社区成员
12,447
社区内容
发帖
与我相关
我的任务
.NET技术其他语言
.NET技术 其他语言讨论
复制链接
扫一扫
分享
社区描述
.NET技术 其他语言讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章