Go语言学习笔记(4)

判断语句,循环语句,流程控制

Go语言条件判断语句

if – else 语句

语法格式:

if (布尔表达式){   //布尔值为true执行花括号内语句
	
	语句1
	
}
else {  //布尔值为false执行else内语句
		
	语句2
	
}
package main

import "fmt"

func main() {

	var A = 2

	if (A == 10){  //2 != 10结果为false,执行else内的语句

		fmt.Println("A = 10")

	}else {
		fmt.Println("A = ",A)
	}


}

输出结果:

if嵌套语句

if 内添加if语句,实现嵌套效果.

语法格式:

if (布尔表达式){

	语句1

	if(B  == 4) {

		语句1.1
	}

}
package main

import "fmt"

func main() {
	
	var B = 4

	if (B > 2){  // 4 > 2 执行语句1

		fmt.Println("B > 2")  //语句1

		if(B  == 4) {  //B = 4 ,执行语句1.1

			fmt.Println("B = 4" )  //语句1.1
		}

	}


}

运行结果:

if-else if-if 语句

单纯是if else是不够用的,所以Go语言还有else if语句。可以搭配ifelse使用

func main() {


	var A = 10

	if (A == 5){
		fmt.Println("A = 5")
	}else if (A == 10) {
		fmt.Println("A = 10")
	}else{
		fmt.Println("A != 5 && A != 10")
	}
}

输出结果:

switch语句

switch用来执行不同条件的不同动作,switch包含case的分支,swicth会从上到下一次判断各个case分支。case都是唯一的,而且自带一个break效果,一旦执行一个case就不会执行后面的case,如果需要执行后面的case,需要加 fallthrough .

fallthrough 要放在要第一个执行的case

default代表如果没有可执行的 case ,则会执行 default下的语句。

case中值的数据类型必须和switch中的数据类型相同, 多个值也可以写在一个case中, 但要用逗号隔开

格式 :

switch Var {
    case var1:
        //语句1
    case var2:
        //语句2
    default:
        //语句3
}
package main

import "fmt"

func main() {

	var A = 4

	var B = 2

	var C = A

	var D = 4

	switch C {  //判断

	case A:
		fmt.Println("A = " , A)
		fallthrough   // D 和 A都为4,如果不加fallthrough只能执行A 的case

	case B:
		fmt.Println("B = " , B)


	case D:
		fmt.Println("D = " , D)

	default:
		fmt.Println("C = " , C)
	
	}
	

}

输出结果:

Go语言条件循环语句

for关键字

在Go语言中去除了while ,do - while 循环,变得更加简洁了。

格式:

for 控制变量(赋值表达式); 循环条件(逻辑表达式\关系表达式);控制变量控制(自增\自减){
        //语句
}

其中 控制变量控制 是可以选择性添加的,不添加就实现了while循环

package main

import "fmt"

func main() {

	var A = 0
	for i := 0; i < 10; i++{
		A = A + i
	}
	fmt.Println( "A = ",A)

}

运行结果:

for range 语句

for range语句有着类似迭代器操作(遍历数组,字符串等),返回 (索引, 值) 或 (键, 值)

特点:

  • 数组,切片返回格式为[索引,]
  • map返回
  • 通道(channel)只返回通道(channel)内

格式:

for (索引名\键名),(值) := range (range的对象) {
      //语句
}
字符串会转为ASCII码输出,如果需要显示字符 则需要 string()转为字符串类型
package main

import "fmt"

func main() {

	var String = "ABCDEFG"

	for index,value := range String{

        //index:索引 , value:for range出来的值
	fmt.Println("index:",index,",Value:",string(value),"ASCII:",value)

	}
}

输出结果:

流程控制语句

Continue

跳过当前循环,进入下一循环

package main

import "fmt"

func main() {

	for i := 0;i < 3;i++{
		fmt.Println("i =  = = ",i)
		for n := 0;n < 5;n++{
			if (n < 2){
				continue
			}
			fmt.Println("n =",n)
		}

	}

}

输出结果:

Break

终止当前循环,或者跳出switch语句

在多重循环中,可以用标号 label 标出想 break 的循环。

package main

import "fmt"

func main() {

	for i := 0;i < 3;i++{
		fmt.Println("i =  = = ",i)
		for n := 0;n < 5;n++{
			if (n < 2){
				break
			}
			fmt.Println("n =",n)
		}

	}

}

输出结果:

break + label 跳出指定循环

package main

import "fmt"

func main() {
label1:
	for i := 0; i < 3; i++ {
		for n := 0; n < 3; n++ {
			break label1  //跳出最外层循环(label1)
			fmt.Println("循环2")
		}
		fmt.Println("循环1")
		fmt.Println("---------------")
	}

}

输出结果:

Goto

无条件地转移到过程中指定的行。

格式 :

goto label;
..
.
label: statement;

使用Goto语句来跳出双层循环.

未使用Goto:

package main

import "fmt"

func main() {

	for i := 0; i < 3; i++ {
		for n := 0; n < 3; n++ {
			fmt.Println("循环2")
			//goto label
		}
		fmt.Println("循环1")
		fmt.Println("---------------")
	}

//label:
//	fmt.Println("label")
}

输出结果,可见break只能跳出所在的循环,无法跳出双层循环。

使用Goto语句:

package main

import "fmt"

func main() {

	for i := 0; i < 3; i++ {
		for n := 0; n < 3; n++ {
			fmt.Println("循环2")
			goto label  //跳到名为label的代码处
		}
		fmt.Println("循环1")
		fmt.Println("---------------")
	}

	label:
		fmt.Println("label")
}

输出结果:

作者: Xenolies
文章标题 :Go语言学习笔记(4)
文章链接 : https://xenolies.xyz/2022/05/31/2304/
文章URL : https://xenolies.xyz/2022/05/31/2304/
本文采用 CC BY-NC-SA 4.0 协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇