00:01
各位,我们再来看一下下一个跳转控制语句叫goto。Goto语句,呃,听这个名字就很好理解,就是goto到什么地方去嘛,那C语言的goto语句呢,它可以无条件的转移到程序指定的行,就它可以沟通到你指定的那一行去。那构图语句呢?通常与条件语句配合使用,可以用来实现条件的转移或者是跳出循环体。但是有一点需要给同学们说清楚,就在C程序中呢,咱们一般不主张使用构图语句,为什么呢?因为这个抠图语句啊,有一个最大的问题。他想跳转到哪里就跳转到哪里,所以说呢,在有些情况下呢,可能会造成程序流程的一个混乱,使理解和程序造成产生一个困难,但是呢,确确实实在C语言里面,它是支持这个构图的,你比如说大家看这里面有个基本语法。
01:01
Goto,这写一个label,这个label呢是你自己定义的,然后你在某一行。前面写上这个level,这两个名字要一样哈。这两个名字只要一样,然后它执行到这的时候,它会直接在这里没有任何条件的直接就跳转到这一行去执行,如果说我们画一个流程图来说的话呢,就可以这样理解,大家看这个流程图。比如说我的代码从这里开始执行。当执行到这个语句的时候,我这里面写了一个goto。到一个label,就是一个标签,这个叫标签。到聊天,比如说goto label3,它就直接从这里到这个位置来了。明白吧,所以这就是我们所说的goto语句,那goto语句呢,大家也可以看到,它如果说你使用的不不恰当的话呢,我们整个这个程序的流程就显得比较混乱,别人阅读你的源代码,可能看不太懂你的你的意,你的这个意图在什么地方。
02:03
好,那现在呢,我们不管怎么样,我们还是给大家举个例子吧,大家看这段代码。这段代码特别简单,这有一个输出语句,然后呢,我这直接写了个goto label1,那这个LABEL1在哪里呢?大家看,我直接写到LABEL1在这了。这个LABEL1,也就是说当我们程序执行到goto label1的时候呢,他就会去看这个LABEL1标签在哪里,就是你们看到这个LABEL1有个专门的术语叫标签。LABEL1称为标签。啊,标签。标签就这来着,那有些同学老师这个标签的名字,咱们可以改成别的名吗?也可以,比如说你你说诶老师,我这个叫AA可不可以。啊,这个就写到这啊说老师我这边改成AA。那么这这个地方我也改成AA可不可以可以的,因为它说白了就是一个标识符嘛,对,所以说呢,你可以根据你的需求来写,我写个aae,我这边要改成aae啊,这肯定是个对应关系,就是说你这个地方goto的这个标签的名字要跟你跳转的这个地方写的标签的名字要保持一致,否则的话呢,它就会报错。
03:13
他会说,诶,我怎么找不到你要跳转的标签呢?明白这个意思吧,当然了,习惯上呢,我们呃不会写这种AA,我们习惯上呢,还是写个LABEL1LABEL2,好这样子来玩的,这边我也改成label好吧,这个大家应该很好理解,好同学们给大家来执行一下。我们先输出十大,然后呢,OK1和OK2就不会输出了,因为为什么呢?因为它到这直接就到这来了。到这个LABEL1这个位置,LABEL1没有输出执行下去,那也就是说它会输出OK3和OK4。那说明什么呢?说明我们这个结果输出的是这样子的。输出一个OK3。和一个OK4说完了。就这么来的,同学们好,那同学们呢,可以给大家演示一下,看看结果是这样子的,好吧,我给同学们演示一下就可以了。
04:08
呃,怎么演示呢?怎么验尸呢?好,来,我们把这个先注销一下。注销过呢,我们写个goto DEMO。给他演演,演示一下就可以了。Goto DEMO。好,然后呢,这边我们写上goto语句对不对,在哪里,在这。Goto DEMO,然后呢,给它改成C。各位,我们写一下include ST dl。Void。主函数。然后在这边呢,怎么写上好的,那现在我们根据刚才分析,应该输出OK3和OK4 ok1和OK2就没有了。来我们运行至。看输出的效果跟我们想象的是否一样。我们这边输出的一个是OK3OK4正确,那还是那句话啊,这个标签呢,也可以改成别的名,比如说叫AA,那这边也要改成AA了,好吧,你那样才才能一样看到没有,你如果你这边写的是AA1,但是你这边写的AA2不行,他会说什么呢?他说找不到。
05:15
看到没有,好,就这么一个意思,好的同学们,我还撤回去,还把它改成LABEL1。好,同学们,那关于这个构图语句就说到这,紧接着呢,还有一个控制跳转语句叫return,这个我们这先简单的说一下。Return这个语句,它的作用是跳出所在的函数。在讲解函数的时候呢,我们再来说这个return,现在说不清楚,为什么呢?因为return语句它是跟函数相关的,所以说这个语句我们在讲函数的时候,再详细的给大家介绍好不好,知道有这个就行。那这样子我们把刚才讲解的内容呢,给各位朋友板述一下,我们刚才讲的内容,一个是goto,一个简单的说了一下语句,那么看一下goto语句是干什么的。
06:06
输了一把,哥出一句。好的。构图语句,它的一个基本介绍,还有它的基本语法,我们说到这儿。基本介绍来了。对不对,那这边有这么几点说明,给大家梳理一下。紧接着呢,有基本语法,这个不说了,就是goto写上一个label,然后这边有一个对应的label。对上注意要有对应关系哈,没有对应关系是不行的。这是他的标签,然后这是它的一个示意图,我也简单的给大家拿到这来好不好。把他的基本说完以后,是不是我们举了一个案例,对举了一个案例,增强大家对他的一个认识。案例好,那么这个案例呢,是在这儿举的。是给他拿过来就可以了。最后说这个案例输出的结果是OK3和OK4,是这样的,同学们。
07:03
为什么?我刚才已经讲过是吧,到这来一句话,直接就直接到内一了,注意这两个标签的名字要怎么样,要有对应关系。好,这是关于goto,后面呢,我们简单的说一下return语句。说提了一下瑞特语句呢,它主要是跟函数结合使用,因此呢,这里面我们就简单的介绍一下,这里我要说明在哪里呢,在讲。函数的时候,还会具体的给大家聊这个事情。好,我在这儿给大家板书一把。好,同学们,那关于那关于我们这边讲的goto和return,就给到同学们介绍到这里。
我来说两句