C#语言入门:[16]goto跳转语句
goto语句的用法非常灵活,你可以用它实现很多功能,但是由于goto语句的跳转影响程序的结构,在使用的时候会使人迷茫,所以一般"教材"上都不建议使用,但是用它可以实现递归(这节暂时不讲递归),循环,选择功能,使用起来也很方便,所以我并不排挤它.存在即有价值,大家在使用上做适当取舍就好,觉得需要用就用,不必因拘泥而刻意不去用.
操作方法
- 01
goto 的意思是跳转到的意思,那么跳转到哪里呢,当然是跳转到另一个语句,如何标示这个要跳转到的语句,答案是在该语句前加上标签 int i = 0; goto cc; i = 9; cc: Console.Write(i); 如图,就这是四句代码,标签的使用方式cc: Console.Write(i);即为标签名,再加上冒号":",标签名大家可以随意取,比如aa,bb,反正随大家喜欢.这四句代码的意思是,第一名:定义变量i,第二句:跳转到标签为cc的语句,接下来就输出i的结果,可以看出,第三句是无意义的,因为没有被执行,跳过去了,所以输出的值是0,而不是9.
- 02
可能大家会觉得这个程序是没事找事,呵呵,不用急,我写的这几句代码是想让大家用最直接的思路去理解跳转,并不是要实现什么功能. goto跳转的语句,并不是一定要跳转到之后的语句,也就是说,goto还可以跳到前面去执行 我们再来看代码 int i = 0; cc: Console.Write(i); goto cc; 第一句代码是定义变量i,第二句是标签为cc的输出变量i的语句,第三句代码是跳转到标签为cc的语句.因为每次输出i以后,都又跳转回到cc语句,所以程序会不停地输出i.大家是不是有点明白了?没错,这就是用goto实现的循环功能.这是个不停输出0的死循环
- 03
死循环对我们的作用不大,如果我们想要输出i小于10的数,那可以这样变一下代码 int i = 0; cc: Console.Write(i); if (i < 9) { i++; goto cc; } 非常简单,只要在跳转语句加上跳转条件,也就是i<9就好了
- 04
现在说说用goto实现分支语句(其实这只是为了满足大家好奇心,完全没必要,goto用为做循环和递归都很方便,用来做分支相当麻烦,可以说是没事找事,所以看不懂也没什么,条条大路通罗马,有更近的路,我们为什么要绕远路,所以这只是写来让大家研究,如果不想看或看不懂,都可以不作理会) 先上代码 int i = 3; if (i == 1) goto a1; if (i == 2) goto a2; if (i == 3) goto a3; a1: Console.Write("这是a1语句"); goto end; a2: Console.Write("这是a2语句"); goto end; a3: Console.Write("这是a3语句"); goto end; end: Console.Read(); 这个代码的意思是,如果i等于1,2,3中的值,便跳到相应的a1,a2,a3的语句执行,执行完后,为了避免执行后面的语句,直接跳到end语句.其实最好面的第三个goto end有没有都无影响,写来好看的,呵呵. 好,我们分别代赋值i等于1,2,3看结果
- 05
值得注意的一点是,goto只能在"方法"内执行,现在还没有给大家讲"方法",所以暂时我只能具体说给倒子给大家 goto的语句,只能在这个大括号里执行,写到别的地方就会出错,这一点大家不理解就先记住它就好,以后讲类的时候就会清楚,现在不需要深入