关闭

使用if和goto语句构造循环

标签: gotoif循环跳转C
2024人阅读 评论(0) 收藏 举报
分类:

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


if语句和goto语句搭配使用可以构造循环,if语句作为循环的条件判断,goto用来跳转以反复执行某些语句(循环体)以达到循环执行这些语句的目的。

这儿放一个简单的程序作为例子:

#include <iostream>
using namespace std;

int main()
{
	int i = 0;
star:
	cout<<"*";
	i++;
	if(i < 10)
	{
		goto star; //用goto语句构造循环的时候,循环变量要在goto语句之前执行
		//i++; //i++放在这儿会造成死循环,因为goto到star,i++不会被执行
		cout<<"running1..."<<endl; //位于goto语句下方,不会被执行
	}
	cout<<endl<<"running2..."<<endl;
	cout<<endl;
	return 0;
}

程序执行结果:


Note that: 由于goto语句能够直接跳到程序的某一处开始执行,某些本该执行的语句可能会被漏掉而没有执行,会导致许多不易察觉的errors,而且不易于调试差错(goto喜欢跳来跳去的嘛)。并且使程序结构看上去不那么严密,松散很多。综上所述,goto语句很强大,但是弊端也很明显,不推荐大家使用goto语句。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

用 goto + if 模拟 循环

* 循环的效率分析, 用 goto + if 模拟 循环(for, do-while, while)如果模拟费劲(if + goto 的次数统计多),说明效率低. 备注:...
  • LostSpeed
  • LostSpeed
  • 2015-10-27 00:14
  • 425

为什么使用goto语句作错误处理 by明智

2月22日,苹果更新了iOS7.0.6,修复了一个bug,之后引起轩然大波,这个低级的bug会导致严重的安全问题.     这个bug很简单,就是在代码中多写了一条goto fail语句,我们且不讨论...
  • u013293746
  • u013293746
  • 2014-03-07 16:28
  • 1065

C语言 if分支与循环语句

C语言 if分支与循环语句(1) // //  main.c //  C_02 // //  Created by 谭其伟 on 15/11/26. //  Copyright...
  • kiwirr
  • kiwirr
  • 2015-12-01 19:18
  • 1256

正确使用goto语句

问题起源: 60年代中期以后,计算机硬件技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬件的成本不断降低。计算机价格的下跌为它的广泛应用创造了极好的条件。在这种形势下,迫切要求计算...
  • eminemdsp
  • eminemdsp
  • 2016-07-22 21:02
  • 944

GOTO语句利弊

一看就知道是goto和call分不清的孩子 然后在群里敲代码的时候,小猫用了Do...Loop循环,结果群里有个小朋友问Do...Loop循环是什么?-_-|||结果一群人都说很少用Do...Loo...
  • muzilanlan
  • muzilanlan
  • 2015-03-27 10:35
  • 4319

浅谈break 、continue、return,goto四种语句的区别。

3.浅谈break 、continue、return三种语句的区别: break,continue,return这三个具有跳转功能的语句在c语言中经常被用到,近期身边有些小伙伴总是把它们的用法搞乱,在...
  • wanghy_ios
  • wanghy_ios
  • 2015-07-19 22:11
  • 1468

cmd goto命令 流程跳转

一般的批处理命令,都是按照自上而下的流程逐行执行的,也就是说,只有第一行的命令执行了之后,才可能执行第二行,第二行执行完之后,再执行第三行……如此依次执行。 如果对不同的情况,需要执行不同的既定...
  • YABIGNSHI
  • YABIGNSHI
  • 2016-12-09 16:51
  • 689

Goto语句还是被认为是有害的吗?

Is goto Still Considered Harmful? By Larry Seltzer, March 11, 2014 Apple's recent security bug...
  • cpq37
  • cpq37
  • 2015-08-07 18:27
  • 1509

Java里的goto语句与C语言goto语句对比

以前看过一本《goto有毒》原名为《goto声明是有害的》,里面表示在C语言中由于goto语句的泛滥,使得程序流程不清晰,变得不可跟踪,而且随着goto声明越多,出错可能性就越大,但是goto语句在C...
  • MarkSorin
  • MarkSorin
  • 2016-10-18 10:57
  • 3106

循环结构中break、continue、goto、return和exit的区别

循环结构中break、continue、goto、return和exit的区别(1) 在此之前讲解循环结构时不止一次提到了break语句和continue语句的使用,接下来看看break、con...
  • u012917700
  • u012917700
  • 2015-11-17 12:00
  • 1361
    个人资料
    • 访问:5315929次
    • 积分:61725
    • 等级:
    • 排名:第50名
    • 原创:427篇
    • 转载:3852篇
    • 译文:0篇
    • 评论:337条
    最新评论