进阶,进阶,向控制接口出发。。。

流程控制语句

流程控制语句用于控制程序的执行顺序,这样程序就具备了逻辑结构。

1. if 条件语句

根据布尔值的表达式来决定选择哪个分支执行:
如果表达式的值为true,则if分支被执行;
如果表达式的值为false,则else分支被执行;
示例:

package main

import "fmt"

func main (){
	// 将10赋值给i
	i := 10
	// 需要注意的是:
	// if后面的条件表达式不需要使用()
        // 每个条件分支(if或者else)中的大括号是必须的
	// if紧跟的大括号{不能独占一行,else前的大括号}也不能独占一行
	// 如果你的条件分支不止两个,那么你还可以在if·····else条件语句中增加多个else if
	if i > 10 {
		fmt.Println("i大于10")
	} else if i == 10{
		fmt.Println("i等于10")
	} else {
		fmt.Println("i小于10")
	}
}

输出结果为:
image.png

划重点:
和其他的编程语言不同的是,Go语言中的if语句中可以有一个简单的表达式语句,并将该语句与条件语句用分号分开。

改造示例如下:

package main

import "fmt"

func main() {
	// 直接将i的赋值放到if后面,并与条件语句用分号隔开
	// 这里需要注意的是,在if后面声明的变量只能在if·····else条件语句范围内使用
	if i := 10; i > 10 {
		fmt.Println("i大于10")
	} else if i == 10 {
		fmt.Println("i等于10")
	} else {
		fmt.Println("i小于10")
	}
}

输出结果为:
image.png

2. switch 选择语句

switch的case从上到下注意进行判断
一旦满足条件,立即执行对应的分支并返回
其余分支不再做判断

改造示例如下:

package main

import "fmt"

func main() {
	switch i := 10; { // switch后面也可以跟简单的表达式语句,用分号隔开
	case i > 10: // case条件后面用冒号,并且不用{}
		fmt.Println("i大于10")
	case i == 10: // case自带break,不需要再有结束switch的操作
		fmt.Println("i等于10")
	default: // 这里相当于if中的else
		fmt.Println("i小于10")
	}
}

输出结果为:
image.png

2.1 如果需要switch语句在执行满足条件的case之后还需要执行下一个case的话,就需要用fallthrough关键字

示例如下:

package main

import "fmt"

func main() {
	switch i := 10; {
	case i == 10:
		fmt.Println("i等于10")
		fallthrough // 这里没有break跳出switch,进行下一个case操作
	case i == 10:
		fmt.Println("i等于10,这是第二个case")
	default:
		fmt.Println("i小于10")
	}
}

输出结果为:
image.png

2.2 如果switch后面跟着表达式的话,后面的case的值就需要和这个表达式的结果类型相同,如果不同就会报错。

示例如下:

package main

import "fmt"

func main() {
	switch i := 1; i{
	case 1:
		fmt.Println("i等于10")
		fallthrough
	case 2:
		fmt.Println("i等于10,这是第二个case")
	default:
		fmt.Println("i小于10")
	}
}

输出结果为:
image.png

2.3 也可以直接将表达式放到switch之后

示例如下:

package main

import "fmt"

func main() {
	switch 2 > 1 {
	case true:
		fmt.Println("正确")
	case false:
		fmt.Println("错误")
	default:
		fmt.Println("不知道")
	}
}

输出结果为:
image.png

3. for 循环语句

计算1到100的数字之和时
如果用代码将一个个数字加起来,会非常复杂,可读性也不好

for循环有三部分组成

  1. 是一个简单语句,一般用于for循环的初始化
  2. for循环的条件,表示for循环什么时候结束
  3. 更新语句,一般用于更新循环的变量

代码如下:

package main

import "fmt"

func main() {
	sum := 0
	for i:=1;i<=100;i++ {
		sum += i
	}
	fmt.Println("从1加到100的值为:", sum)
}

输出结果为:
image.png

3.1 Go语言中没有while循环,可以通过改造for循环来实现

代码如下:

package main

import "fmt"

func main() {
	sum := 0
	i := 1
	for i <= 100 {
		sum += i
		i++
	}
	fmt.Println("从1加到100的值为:", sum)
}

输出结果为:
image.png

3.2 跳出循环

continue可以跳出本次循环,继续执行下一个循环
break可以跳出整个for循环,哪怕for循环没有执行完,也会强制终止

使用for无线循环,在for循环里面用条件语句加break来跳出循环
改造代码为:

package main

import "fmt"

func main() {
	sum := 0
	i := 1
	for {
		sum += i
		i++
		if i > 100 {
			break
		}
	}
	fmt.Println("从1加到100的值为:", sum)
}

输出结果为:
image.png

上一篇 下一篇