goto 和 return | 学习笔记

简介: 快速学习 goto 和 return

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: goto 和 return 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9590


goto 和 return

目录:

一、goto 的介绍

二、基本语法

三、跳转控制语句 -return

四、说明

 

一、goto 的介绍

GOto 就是跳转到那里去的意思,goto 常用在会点语言,在高级语言里 goto 这种语法用得比较少。

1)go 语言的 goto 语句可以无条件地转移到程序中指定的行。(意味着它可以乱跳,只要给他一个标签就可以指定跳转到某个定位的地方去)

2)goto 语句通常通常与条件语句配合使用。可用来实现条件转移,跳出循环体等功能。(也就是说通常和 if 语句配合)

3)在 GO 程序设计中(程序员开发)一般不主张使用 goto 语句,以免造成程序流程的混乱,使理解和调试程序都产生困难

(有一段时间甚至在行业里面 goto 是不好的设计,就不许使用 goto 了,后来发现 goto 语句并没有错误,而是使用者的问题,因此恢复使用了 goto,所以本身不是语言的问题而是人的问题,包括 go 语言也是支持 goto 的,但是很多设计员和专家认为尽量避免使用 goto,不是说不能用,只是尽量避免使用,因为 goto 语句容易造成程序流程的混乱,使理解和调试程序都产生困难,所以讲解 goto 语句呢就是想告诉大家 Go 语言是支持 goto 的,这是第一点。

第二点想告诉大家 goto 可以无条件地转移跳出循环到达指定位置;

第三点建议大家能不使用 goto 就不使用,至少讲解完 goto 后,面试官问你 go 语言里面可不可以用 goto,你不要说不支持使用,最好说除非迫不得已才用一下,但一般情况下就不用 goto 了,因为 goto 语句容易造成程序流程的混乱,使理解和调试程序都产生困难)

 

二、基本语法

goto 的基本语法是这样的,你给一个 label:

是自定义的,就是只要满足定义就可以写,goto 就是说当我们的程序执行到 goto后发现后面跟了一个 label(就是一个标签),就是会跳过代码,就是说这边的代码它就不执行了,直接从 goto label 跳转到 Label:statement 开始执行,那么他的一个流程图也比较简单,

代码开始执行,执行到 statement1 ,这里有一个 goto 的语句,如果写有一个 goto label3 ,那么就直接跳转到 statement3 ,也就是说 statement2 就不执行了。

流程图

image.png

快速入门案例

image.png

在 chapter05 新建一个文件夹 goto demo ,然后在 goto demo 新建一个 main go的文件夹,。

Package main

Import

“fmt”

)

Func main(){

var n int=10

//演示 goto 的使用

Fmt.println(“ok1”)

If  n>20{

Goto label1

Fmt.println(“ok2”)

Fmt.println(“ok3”)

Fmt.println(“ok4”)

Label1:

Fmt.println(“ok5”)

Fmt.println(“ok6”)

Fmt.println(“ok7”)

这样子会出现什么情况,当我们的代码执行到 Goto label1

的时候,

Fmt.println(“ok2”)

Fmt.println(“ok3”)

Fmt.println(“ok4”)

这三句代码就会跳过,就不执行了,直接跳转到 Fmt.println(“ok5”) 开始执行。

可以运行尝试一下看代码执行效果。

打个比方,有变量 var n int=10 ,一般会和if配合使用,因为不会无缘无故 goto 到 label 里面去。

如果输入 n=30,这时候 Goto label1 就会使用,Fmt.println(“ok2”)

Fmt.println(“ok3”)

Fmt.println(“ok4”)

这三句话就会被跳过。

最后一句话,尽量避免使用 goto,除非迫不得已。

 

三、跳转控制语句 -return

基本介绍

return 使用在方法(一般会使用在方法和函数中),表示跳出所在的函数或方法,在讲解函数的时候,会详细的介绍。

案例讲解

return 也是用来控制流程的,所以简单讲解一下。

用在函数或方法,表示跳出所在的函数或方法,来看一个简单的代码:

Func main(){

For i:=1; i<=10;i++{

If i==3{

Return

}

Fmt.println(“哇哇”,i)

}

Fmt.println(“HELLO world!”)

这个函数有一个 for 循环,for 循环里面做了一个判断 如果 i==3 就 return,这个 return 表示结束或者跳出这个 main 函数。

相当于结束这个程序了,也就是说 return 放在 main 的函数的,那就表示整个程序结束。

如果是放在别的函数,就是表示跳出这个函数,然后下面代码就不执行了。

它和 break 和 continue 还是不一样的。Break 是终止 for 循环,return 是无论下面怎么样都不执行了。Break 只是停止后面循环体的代码,但是 return 是通通不执行了。Return 比 break 和 continue 跳转和终止得更彻底。

 

四、说明

1)如果 return 是在普通函数,则表示跳出该函数及不在执行函数中 return 后面的代码,也可以理解为终止函数。

2)如果 return 实在 main 函数,表示终止 main 函数,也就是终止函数。

相关文章
|
15天前
break,continue,return的区别深度剖析
break,continue,return的区别深度剖析
|
23天前
|
C语言
exit与return的区别 exit(1)、exit(-1)和exit(0)区别
exit与return的区别 exit(1)、exit(-1)和exit(0)区别
|
23天前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
13 0
break、continue、return在循环中用法的区别
break、continue、return在循环中用法的区别
|
12月前
continue和break的区别
continue和break的区别
80 0
C/C++零散知识点汇总之break、continue、goto、return和exit
C/C++零散知识点汇总之break、continue、goto、return和exit
|
机器学习/深度学习 Java 程序员
实现 Break 和 Continue|学习笔记
快速学习实现 Break 和 Continue。
220 0
实现 Break 和 Continue|学习笔记
|
数据安全/隐私保护 开发者 Python
Break 和 continue 的使用 | 学习笔记
快速学习 Break 和 continue 的使用
69 0

热门文章

最新文章