当前位置:网站首页>Go语言条件,循环,函数

Go语言条件,循环,函数

2022-04-23 15:34:00 世界尽头与你

1.条件

if/else

package main

import "fmt"

func main() {
    
	var a int = 521
	if a == 521 {
    
		fmt.Println("我爱你")
	} else {
    
		fmt.Println("我不爱你")
	}
}
--------------------------
输出:我爱你

switch-case

switch var1 {
    
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

select 语句

select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。

select {
    
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s);
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}

以下描述了 select 语句的语法:

  • 每个 case 都必须是一个通信
  • 所有 channel 表达式都会被求值
  • 所有被发送的表达式都会被求值
  • 如果任意某个通信可以进行,它就执行,其他被忽略。
  • 如果有多个 case 都可以运行,Select 会随机公平地选出一个执行。其他不会执行。
    否则:
    如果有 default 子句,则执行该语句。
    如果没有 default 子句,select 将阻塞,直到某个通信可以运行;Go 不会重新对 channel 或值进行求值。

2.循环语句

for 循环是一个循环控制结构,可以执行指定次数的循环。

实例1:计算 1 到 10 的数字之和

package main

import "fmt"

func main() {
    
	sum := 0
	for i := 0; i <= 10; i++ {
    
		sum += i
	}
	fmt.Println(sum)
}
------------------------------------
输出:55

实例2:无限循环

package main

import "fmt"

func main() {
    
	sum := 0
	for {
    
		sum += 1
	}
	fmt.Println(sum)
}

要停止无限循环,可以在命令窗口按下ctrl-c

实例3:For-each range 循环

package main

import (
	"fmt"
)

func main() {
    
	strings := []string{
    "imustctf", "wode"}
	for i, s := range strings {
    
		fmt.Println(i, s)
	}
}
---------------------------------------
输出:
0 imustctf
1 wode

实例4:类似的while循环,在 sum 小于 10 的时候计算 sum 自相加后的值:

package main

import "fmt"

func main() {
    
	sum := 1
	for sum <= 10 {
    
		sum += sum
	}
	fmt.Println(sum)
}
-----------------------------
输出:16

3.函数

实例1:函数传入两个整型参数 num1 和 num2,并返回这两个参数的最大值

package main

import "fmt"

func max(num1, num2 int) int {
    
	// 声明局部变量
	var result int
	if num1 > num2 {
    
		result = num1
	} else {
    
		result = num2
	}
	return result
}

func main() {
    
	var a int = 100
	var b int = 200
	res := max(a, b)
	fmt.Println(res)
}
-----------------------------
输出:200

实例2:函数返回多个值

package main

import "fmt"

func swap(x, y string) (string, string) {
    
	return y, x
}

func main() {
    
	a, b := swap("a", "b")
	fmt.Println(a, b)
}
--------------------------------
输出:b a

实例3:引用传递指针参数

package main

import "fmt"

func swap(x *int, y *int) {
    
	var temp int
	temp = *x /* 保存 x 地址上的值 */
	*x = *y   /* 将 y 值赋给 x */
	*y = temp /* 将 temp 值赋给 y */
}

func main() {
    
	a, b := 100, 200
	fmt.Println(a, b)
	swap(&a, &b)
	fmt.Println(a, b)
}
-----------------------------------
输出:
100 200
200 100

版权声明:本文教程基于菜鸟教程

版权声明
本文为[世界尽头与你]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Gherbirthday0916/article/details/124301725