golang入门到项目实战|golang中的if语句(代码片段)

一个热爱编程的通信人 一个热爱编程的通信人     2022-12-01     800

关键词:

go语言中的if语句和其他语言中的类似,都是根据给定的条件表达式运算结果来,判断执行流程。

go语言if语句语法

if 布尔表达式 
   /* 在布尔表达式为 true 时执行 */

注意:在go语言中 布尔表达式不用使用括号。

go语言if语句实例演示

根据布尔值flag判断

import "fmt"

func test1() 
	var flag = true
	if flag 
		fmt.Println("flag is true")
	
	fmt.Printf("程序运行结束")


func main() 
	test1()

程序运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
flag is true
程序运行结束

初始变量可以声明在布尔表达式里面,注意它的作用域

package main

import "fmt"

func test3() 
	if age := 20; age > 18 
		fmt.Println("你是成年人")
	
	fmt.Printf("程序运行结束")


func main() 
	test3()

程序运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
你是成年人
程序运行结束

注意:不能使用0或非0表示真假

go语言if语句使用提示:

  1. 不需使用括号将条件包含起来
  2. 大括号必须存在,即使只有一行语句
  3. 左括号必须在if或else的同一行
  4. 在if之后,条件语句之前,可以添加变量初始化语句,使用;进行分隔

go语言中的if else语句可以根据给定条件二选一。

go语言的if else语句语法

if 布尔表达式 
   /* 在布尔表达式为 true 时执行 */
 else 
  /* 在布尔表达式为 false 时执行 */

go语言if else语句实例

比较两个数的大小

package main

import "fmt"

func f1() 
	a := 1
	b := 2
	if a > b 
		fmt.Printf("\\"a>b\\": %v\\n", "a>b")
	 else 
		fmt.Printf("\\"a<=b\\": %v\\n", "a<b")
	


func main() 
	f1()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
"a<=b": a<b

判断一个数是奇数还是偶数

package main

import "fmt"

func f2() 
	var s int
	fmt.Println("输入一个数字:")
	fmt.Scan(&s)

	if s%2 == 0 
		fmt.Print("s 是偶数\\n")
	 else 
		fmt.Print("s 不是偶数\\n")
	
	fmt.Print("s 的值是:", s)


func main() 
	f2()

运行结果

guoliangs-MacBook-Pro-15-inch:pro01 guoliang$ go run test.go
输入一个数字:
8
s 是偶数
s 的值是:8g

判断一个人是否成年

package main

import "fmt"

func f3() 
	age := 20
	if age >= 18 
		fmt.Println("你是成年人")
	 else 
		fmt.Println("你还未成年")
	

func main() 
	f3()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
你是成年人

特殊写法,在if前面添加执行语句

package main

import "fmt"

func f4() 
	if age := 20; age >= 18 
		fmt.Println("你是成年人")
	 else 
		fmt.Println("你还未成年")
	


func main() 
	f4()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
你是成年人

go语言if语句使用提示:

  1. 不需使用括号将条件包含起来
  2. 大括号必须存在,即使只有一行语句
  3. 左括号必须在if或else的同一行
  4. 在if之后,条件语句之前,可以添加变量初始化语句,使用;进行分隔

go语言if语句可以进行多重嵌套使用,进行多重判断。

go语言中的if else if语法

if 布尔表达式1 
    // do something
 else if 布尔表达式2 
    // do something else
else 
    // catch-all or default

go语言中的if else if语法实例

根据分数判断等级

package main

import "fmt"

func f5() 
	score := 80
	if score >= 60 && score <= 70 
		fmt.Println("C")
	 else if score > 70 && score <= 90 
		fmt.Println("B")
	 else 
		fmt.Println("A")
	

func main() 
	f5()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
B

同样也可以写成这样

package main

import "fmt"

func f5() 
	if score := 80; score >= 60 && score <= 70 
		fmt.Println("C")
	 else if score > 70 && score <= 90 
		fmt.Println("B")
	 else 
		fmt.Println("A")
	


func main() 
	f5()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
B

输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母

package main

import "fmt"

func f6() 
	//  Monday Tuesday Wednesday Thursday Friday Saturday Sunday
	var c string
	fmt.Println("输入一个字符:")
	fmt.Scan(&c)

	if c == "S" 
		fmt.Println("输入第二个字符:")
		fmt.Scan(&c)
		if c == "a" 
			fmt.Println("Saturday")
		 else if c == "u" 
			fmt.Println("Sunday")
		 else 
			fmt.Println("输入错误")
		
	 else if c == "F" 
		fmt.Println("Friday")
	 else if c == "M" 
		fmt.Println("Monday")
	 else if c == "T" 
		fmt.Println("输入第二个字符:")
		fmt.Scan(&c)
		if c == "u" 
			fmt.Println("Tuesday")
		 else if c == "h" 
			fmt.Println("Thursday")
		 else 
			fmt.Println("输入错误")
		
	 else if c == "W" 
		fmt.Println("Wednesday")
	 else 
		fmt.Println("输入错误")
	


func main() 
	f6()

运行结果

guoliangs-MacBook-Pro-15-inch:pro01 guoliang$ go run test.go
输入一个字符:
M
Monday

go语言if语句可以嵌套多级进行判断。

go语言if嵌套语法

if 布尔表达式 1 
   /* 在布尔表达式 1 为 true 时执行 */
   if 布尔表达式 2 
      /* 在布尔表达式 2 为 true 时执行 */
   

go语言if嵌套实例

判断三个数的大小

package main

import "fmt"

// a>b a>c a
// b>a b>c b else c

func f1() 
	a := 100
	b := 200
	c := 3
	if a > b 
		if a > c 
			fmt.Println("a最大")
		
	 else 
		if b > c 
			fmt.Println("b最大")
		 else 
			fmt.Println("c最大")
		
	


func main() 
	f1()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/tempCodeRunnerFile.go"
b最大

判断男生还是女生,还有是否成年

package main

import "fmt"

// a>b a>c a
// b>a b>c b else c

func f2() 
	// 判断男女生及年龄
	gender := "女生"
	age := 16
	if gender == "男生" 
		fmt.Println("男生")
		if age > 18 
			fmt.Println("成年")
		 else 
			fmt.Println("未成年")
		
	 else 
		fmt.Println("女生")
		if age > 18 
			fmt.Println("成年")
		 else 
			fmt.Println("未成年")
		
	


func main() 
	f2()

运行结果

[Running] go run "/Users/guoliang/SynologyDrive/软件开发/go/golang入门到项目实战/goproject/360duote.com/pro01/test.go"
女生
未成年

golang入门到项目实战|go语言中的流程控制(代码片段)

go语言中的条件条件语句是用来判断给定的条件是否满足(表达式值是否为true或者false),并根据判断的结果(真或假)决定执行的语句,go语言中的条件语句也是这样的。go语言中的条件语句包含如下几种情况if语句:if语... 查看详情

golang入门到项目实战第一个golang应用

参考技术A1.创建一个文件夹,例如:golang入门到项目实战2.在golang入门到项目实战文件夹中创建一个go文件,例如:test.go3.在test.go中输入如下内容:4.编译执行goruntest.go5.可仅选择编译执行gobuildtest.go,则目录下会多出个exe程序 查看详情

golang入门到项目实战|golang指针(代码片段)

Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无需拷贝数据。类型指针不能进行偏移和运算。Go语言中的指针操作非常简单&#... 查看详情

golang入门到项目实战|golang函数(代码片段)

golang函数简介函数的go语言中的一级公民,我们把所有的功能单元都定义在函数中,可以重复使用。函数包含函数的名称、参数列表和返回值类型,这些构成了函数的签名(signature)。go语言中函数特性go语言... 查看详情

golang入门到项目实战golangfor循环语句

参考技术Ago语言中的for循环,只有for关键字,去除了像其他语言中的while和dowhile.注意:for表达式不用加括号循环输出1到10运行结果初始条件,可以写到外面运行结果初始条件和结束条件都可以省略运行结果这种情况类似其他语... 查看详情

golang入门到项目实战golang匿名函数

参考技术Ago语言函数不能嵌套,但是在函数内部可以定义匿名函数,实现一下简单功能调用。所谓匿名函数就是,没有名称的函数。语法格式如下:当然可以既没有参数,可以没有返回值运行结果自己执行运行结果 查看详情

golang入门到项目实战golang方法

参考技术Ago语言没有面向对象的特性,也没有类对象的概念。但是,可以使用结构体来模拟这些特性,我们都知道面向对象里面有类方法等概念。我们也可以声明一些方法,属于某个结构体。Go中的方法,是一种特殊的函数,定... 查看详情

golang入门到项目实战golang并发编程之runtime包

参考技术Aruntime包里面定义了一些协程管理相关的api让出CPU时间片,重新等待安排任务运行结果退出当前协程运行结果运行结果如果修改最大核心数为1,运行结果如下,不会出现交替执行现象 查看详情

golang入门到项目实战golang结构体指针

参考技术A结构体指针和普通的变量指针相同,我先来回顾一下普通变量的指针,例如:运行结果实例运行结果我们还可以通过使用new关键字对结构体进行实例化,得到的是结构体的地址,例如:运行结果从运行结果,我们发现p_... 查看详情

golang入门到项目实战|golang继承(代码片段)

golang本质上没有oop的概念,也没有继承的概念,但是可以通过结构体嵌套实现这个特性。例如packagemainimport"fmt"typeAnimalstructnamestringageintfunc(aAnimal)eat()fmt.Println("eat...")func(aAnimal)sleep()fmt.Println("sleep")typeDogstr... 查看详情

golang入门到项目实战|golang指向数组的指针(代码片段)

定义语法varptr[MAX]*int;表示数据里面的元素的类型是指针类型实例演示packagemainimport"fmt"constMAXint=3funcmain()a:=[]int1,3,5variintvarptr[MAX]*intfmt.Println(ptr)//这个打印出来的是[<nil><nil><nil>]fo 查看详情

golang入门到项目实战|golang构造函数(代码片段)

golang没有构造函数的概念,可以使用函数来模拟构造函数的功能。例如packagemainimport"fmt"typePersonstructnamestringageintfuncNewPerson(namestring,ageint)(*Person,error)ifname==""returnnil,fmt.Errorf("name不能为空")ifage<0returnnil... 查看详情

golang入门到项目实战|golang运算符(代码片段)

Go语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符算术运算符运算符描述+相加-相减*相乘/相除%求余注意:++(自增)和--(自减)在Go语言中是单独的语句,并不是... 查看详情

golang入门到项目实战|golang高阶函数(代码片段)

...yHello)运行结果[Running]gorun"d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\tempCodeRunnerFile.go"Hello,tomgo语言函数作为返回值packagemainimport"fmt"funcadd(x,yint)intreturnx+yfuncsub(x,yint)intreturnx-yfunccal(sstr... 查看详情

golang入门到项目实战|golang字符串(代码片段)

一个Go语言字符串是一个任意字节的常量序列。[]bytego语言字符串字面量在Go语言中,字符串字面量使用双引号""或者反引号'来创建。双引号用来创建可解析的字符串,支持转义,但不能用来引用多行;反... 查看详情

golang入门到项目实战|golang结构体指针(代码片段)

...p_name)运行结果[Running]gorun"d:\\SynologyDrive\\软件开发\\go\\golang入门到项目实战\\goproject\\360duote.com\\pro01\\test.go"name:tomp_name:0xc000050230*p_name:tomgo结构体指针实例packagemainimport"fmt"funcmain()typePersonstructidintnamestringvartom=P 查看详情

golang入门到项目实战|go语言遍历map(代码片段)

可以使用forrange循环进行map遍历,得到key和value值。遍历keypackagemainimport"fmt"funcmain()m:=make(map[string]string)m["name"]="tom"m["age"]="20"m["email 查看详情

golang入门到项目实战|golang模拟oop的属性和方法(代码片段)

golang没有面向对象的概念,也没有封装和概念,但是可以通过结构体struct和函数绑定来实现OOP的属性和方法等特性。接收者receiver方法。例如,想要定义一个Person类,有name和age属性,有eat/sleep/work方法。packagema... 查看详情