7.8 goto语句
goto语句在C中仍然可用。但是C没有goto语句C程序也能运行良好。Kernighan和Ritchie提到goto语句“已被滥用”,并建议“谨慎使用,
或者根本不用”。
goto语句有两部分:goto和标签名。标签的命名遵循变量命名规则。例如:
goto part2;
要让这条语句正常工作,函数还必须包含另一条标为part2的语句,该语句以标签名后紧跟一个冒号开始:
part2:printf( "Refined analysis:\n" );
7.8.1 避免使用goto
原则上,根本不用在C程序中使用goto语句。FORTRAN或BASIC(goto这两种语言而言都必不可少),可能还会依赖goto来编程。
使用goto的常见情况,然后再介绍C的解决方案。
*处理包含多条语句的if语句:
if( size > 12 )
goto a;
goto b;
a: cost = cost * 1.05;
flag = 2;
b: bill = cost * flag;
对于以前的BASIC和FORTRAN,只有直接跟在if条件后面的一条语句才属于if,不能使用块或复合语句。我们把以上模式转换成等价的C代码,标准C用复合语句或块来处理这种情况:
if( size > 12 ){
cost = cost * 1.05;
flag = 2;
}
bill = cost * flag;
*二选一
if( ibex > 14 )
goto a;
sheds = 2;
goto
C Primer Plus(6) 中文版 第7章 C控制语句:分支和跳转 7.8 goto语句 7.9 关键概念 7.10 本章小结
本文讨论了C Primer Plus第六版第7章中的goto语句,虽然C语言支持goto,但作者建议谨慎使用。goto常用于处理多条语句的if条件、创建不确定循环等场景,但在C中这些问题可以通过更清晰的结构如复合语句、while、if else、break和continue解决。此外,文章强调避免过度使用goto以保持代码的清晰性,并提出在标签前后的使用规则。
摘要由CSDN通过智能技术生成