一、循环结构
package main
import "fmt"
func main() {
/*
1.在C语言中循环结构有三个 for/while/dowhile
2.在Go语言中循环结构只有一个 for
因为while/dowhile能做的for都能做, 所以Go只保留了for循环
3.C语言for循环的格式
for(初始化表达式;条件表达式;增量表达式){
需要循环操作的语句;
}
4.Go语言的for循环和C语言非常非常非常像
for 初始化表达式;条件表达式;增量表达式{
需要循环操作的语句;
}
特点:
1.没有非零即真的概念, 条件表达式的返回值必须是布尔类型
2.不能省略大括号
3.最简单的死循环
for{}
*/
//fmt.Println("发射子弹")
//fmt.Println("发射子弹")
//fmt.Println("发射子弹")
//fmt.Println("发射子弹")
//fmt.Println("发射子弹")
for num := 0; num < 5; num++{
fmt.Println("发射子弹")
}
}
二、break
package main
import "fmt"
func main() {
/*
1.在C语言中有四大跳转语句 break continue goto return
2.在Go语言中也有四大跳转语句 break continue goto return
3.在C语言中break的应用范围
switch语句和循环语句
4.在Go语言中一样
switch语句和循环语句
但是Go语言的switch语句中默认就不会穿透, 所以break写不写都行, 一般都不写
5.注意点:
Go语言中的break可以跳转到指定的标签, 但是标签只能定义在前面, 并且跳转到标签之后循环不会被再次执行
标签和循环之间不能编写其它语句
*/
//switch num := 2; num {
//case 1:
// fmt.Println("1")
//case 2:
// fmt.Println("2")
// break
//default:
// fmt.Println("OTHER")
//}
//for num := 1; num <= 10; num++ {
// fmt.Println(num)
// if num == 5{
// break
// }
//}
msh:
//fmt.Println("start") // 标签和循环之间不能添加任何语句
for num := 1; num <= 10; num++ {
fmt.Println(num)
if num == 5{
break msh
}
}
//msh: // 标签只能写在前面
fmt.Println("end")
}
三、continue
package main
import "fmt"
func main() {
/*
1.在C语言中continue只能用于循环结构
2.在Go语言中和C语言一样, 也只能用于循环结构
3.使用的各种特性和C语言都一样, 唯一不一样的就是可以跳转到指定的标签
注意点:
如果跳转到指定的标签, 对于单层循环来说没有任何意义, 和不指定标签的效果一样
如果跳转到指定的标签, 对于多层循环来说才有意义, 结束当前内循环, 跳到下一次外循环
其它的注意点和break跳转到标签一样
标签只能定义在前面, 标签和循环之间不能添加其它语句
*/
//for num := 1; num <= 10; num++ {
// if (num % 2) == 0{
// continue
// }
// fmt.Println(num)
//}
//msh:
// for num := 1; num <= 10; num++ {
// if (num % 2) == 0{
// continue msh
// }
// fmt.Println(num)
// }
msh:
for i := 1; i <= 5; i++ {
fmt.Println(i)
for j := 1; j <= 10; j++ {
if (j % 2) == 0 {
continue msh
}
fmt.Println("---------", j)
}
}
}
四、goto
package main
import "fmt"
func main() {
/*
1.C语言中的goto可以在同一个函数中随便乱跳
2.Go语言中的goto也可以在同一个函数中随便乱跳
所以就是一模一样
注意点:
可以往前跳, 也可以往后跳
标签和跳转语句之间可以编写其它的代码
*/
// num := 1
//outer:
// fmt.Println("start")
// if(num <= 10){
// fmt.Println(num)
// num++
// goto outer // 死循环
// }
// fmt.Println("come here")
for i := 1; i <= 10; i++ {
fmt.Println(i)
if i == 5 {
goto msh
}
}
msh:
fmt.Println("come here")
}
网友评论