赞
踩
注意:以下演示所用的项目,在第一章节已经介绍了,这里不做赘述
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}
package tiaojian // if单层 import "fmt" func OneIf(){ var num int fmt.Print("请输入一个数字:") fmt.Scan(&num) if num == 100{ fmt.Println("满分100!") } fmt.Println("程序执行完!") } // 输出结果 开始运行: 当前机器状态: 正常 请输入一个数字:100 满分100! 程序执行完!
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
} else {
/* 在布尔表达式为 false 时执行 */
}
package tiaojian
// if-else 语句
import "fmt"
func IfElse(){
var num int
fmt.Println("请输入一个数字:")
fmt.Scan(&num)
if num > 2023 {
fmt.Println("恭喜您!2024新年好")
}else{
fmt.Println("2023辞旧迎新!")
}
}
if 布尔表达式1 {
}else if 布尔表达式{
}
package tiaojian // if-else 语句 import "fmt" func IfElse(){ var num int fmt.Println("请输入一个数字:") fmt.Scan(&num) if num > 2023 { fmt.Println("恭喜您!2024新年好") }else if num == 2024{ fmt.Println("2023辞旧迎新!") }else { fmt.Println("读懂《遥远的救世主》:不去讨好生活,生活有时候会反") } }
if 布尔表达式1 {
/* 在布尔表达式 1 为 true 时执行 */
if 布尔表达式2 {
/* 在布尔表达式 2 为 true 时执行 */
}
}
package tiaojian // if-else 语句 import "fmt" func IfElse(){ var num int fmt.Println("请输入一个数字:") fmt.Scan(&num) if num > 2023 { fmt.Println("恭喜您!2024新年好") }else if num == 2024{ fmt.Println("2023辞旧迎新!") }else { if num == 1{ fmt.Println("袈裟本无清静,红尘不染性空,幽幽古刹千年钟,都是痴人说梦") } fmt.Println("读懂《遥远的救世主》:不去讨好生活,生活有时候会反") } } // 运行结果 开始运行: 当前机器状态: 正常 请输入一个数字:1 程序执行完! 请输入一个数字: 1 袈裟本无清静,红尘不染性空,幽幽古刹千年钟,都是痴人说梦 读懂《遥远的救世主》:不去讨好生活,生活有时候会反
package tiaojian // 条件语句 import "fmt" func Tiaojian(){ var a1 int = 1 var a2 int = 2 fmt.Printf("a1=%v, a2=%v\n", a1, a2) if a1 < a2 { fmt.Println("a1 < a2") }else{ fmt.Println("a1 > a2") } // 使用scanf 输入一个值 var pwd string = "" fmt.Print("请输入密码:") fmt.Scanf("%v", &pwd) fmt.Println(a1) if pwd == "001"{ fmt.Println("密码输入正确!!") fmt.Println("获取新的技能:重锤火花") fmt.Println("经验提升:88") fmt.Println("获取金钱:88888888") }else{ fmt.Println("密码输入错误!!") fmt.Println("金钱扣除:80") } // 使用 fmt.Print("请再输入一个:") fmt.Scan(&a1) fmt.Println(a1) } // 执行结果 运行结果: 当前状态: 19 a1=1, a2=2 a1 < a2 请输入密码:001 1 密码输入正确!! 获取新的技能:重锤火花 经验提升:88 获取金钱:88888888 请再输入一个:20 20
switch 表达式 {
case 值1, 值2:
语句1
case 值1, 值2:
语句2
case 值1, 值2:
语句3
default:
语句4
}
package tiaojian // switch 语句 import "fmt" func DemoSwitch(){ var num int fmt.Print("请输入一个num:") fmt.Scan(&num) switch { case num >= 0 && num < 60: fmt.Println("还得继续加油!:", num) fallthrough case num >= 60 && num < 70: fmt.Println("恭喜您,及格了!:", num) case num >= 70 && num < 80: fmt.Println("恭喜您,良好了!:", num) case num >= 80 && num < 90: fmt.Println("恭喜您,优秀了!:", num) default: fmt.Println("满分?", num) } } // 输出结果 开始运行: 当前机器状态: 正常 请输入一个num:12 还得继续加油!: 12 恭喜您,及格了!: 12
注意,其中fallthrough 表示无条件执行下一个case,也就是无论下一条语句执行的是true还是false都会执行。
2. 实战:switch 后面跟变量
package tiaiojian import "fmt" func SwitchVar{ var num int fmt.Scan(&num) switch num{ case 60: fmt.Println("及格了", num) case 80: fmt.Println("良好了", num) default: fmt.Println("还能满分么!", num) } } // 直接固定一个值也是也可以,直接固定60比如 package tiaojian import "fmt" func SwitchVar(){ var num int fmt.Scan(&num) switch 60{ case 60: fmt.Println("恭喜您,及格了!") case 80: fmt.Println("恭喜您,良好了!") default: fmt.Println("恭喜您,满分了?") } }
package tiaojian import "fmt" func SwitchVar(){ var num int fmt.Scan(&num) fmt.Println("测试固定得值") switch 60{ case 60: fmt.Println("固定的值60") default: fmt.Println("没有值") } const STATUS int = 100 switch STATUS{ case 100: fmt.Println("满分100!") default: fmt.Println("没有值") } } // 结果 测试固定得值 固定的值60 // 定义一个带有返回值的函数 package tiaojian import "fmt" func returnInt() int { return 70 } func SwitchVar(){ var num int fmt.Scan(&num) switch returnInt(){ case 70: fmt.Println("函数返回值70") default: fmt.Println("没有值") } }
实战: case后面的表达式如果是常量值(字面量)则要求不能重复
实战: case后面的表达式如果是常量值(字面量)则要求不能重复
实战:case后面可以多个值使用逗号分割,比如case 值1,值2……
switch 70 {
case 60, 70, 8:
fmt.Println("固定的值60")
default:
fmt.Println("没有值")
}
switch {
case num ==1:
fmt.Println("这是可以当作if语句使用")
}
switch test :=12; {
case test == 12:
fmt.Println("这是一个变量值等于12")
case test > 12:
fmt.Println("这个变量大于12")
}
package tiaojian import "fmt" func SwitchVar(){ fmt.Println("------总结------") var num1 int =12 // switch后面不跟值 switch { case num1 == 12: fmt.Println("这是12") case num1 == 13: fmt.Println("这是13") default: fmt.Println("这是default") } // switch后面跟变量 switch num1{ case 12: fmt.Println("这是12") case 13: fmt.Println("这是13") default: fmt.Println("这是default") } // switch后面跟声明变量 相当于 var num2 int 13; switch {} switch num2:=13; { case num1 == 12: fmt.Println("这是12") case num2 == 12: fmt.Println("这是13") default: fmt.Println("这是default") } }
var a1 int 1
var a2 int 2
……
var a100 int 100
var sum int = a1+a2+……+a100
// Like a C for
for init; condition; post { }
// Like a C while
for condition { }
// Like a C for(;;)
for { }
---------
翻译成中文就是
for 初始化语句;循环条件;后置语句{}
package tiaojian // for循环语句 import "fmt" func DemoFor(){ for i:=0; i < 10 ;i++{ fmt.Println(i) } } 输出结果:0 1 2 3 4 5 6 7 8 9 或者 package tiaojian // for循环语句 import "fmt" func DemoFor(){ for i:=0; i < 10 ;i+=2{ fmt.Println(i) } } 输出结果:0 2 4 6 8
for {
fmt.Println("无限循环")
}
或者
for ;;{
xxx
}
package tiaojian // for循环语句 import ( "fmt" "time" ) func DemoFor(){ var count int = 0 for i:=0; i < 10 ;i+=2{ fmt.Println(i) } // 无限循环方法1 fmt.Println("无限循环方法!") for { time.Sleep(1 * time.Second) fmt.Println("无限循环!1") count ++ if count >=3 { break } } // 无限循环方法2 for ;; { time.Sleep(1 * time.Second) fmt.Println("无限循环!2") } }
range
关键字用于迭代数组(Array)、切片(Slice)、字符串(String)、映射(Map)、通道(Channel)等数据结构。它提供了一种简洁的方式来遍历这些数据结构的元素。如果不使用range for就是按照那个字节输出,如果遇到中文就会有问题,因为中英文字节不一样。所以会乱码,使用range就是可以遍历完成的。package tiaojian import "fmt" func DemoForRange(){ var str string = "hello golang 你好" // 这里是按照字节遍历输出的 for i :=0; i < len(str) ; i++{ fmt.Printf("%c\n", str[i]) } // 使用range函数 for index, value := range str{ fmt.Printf("index:%v, value=%c\n ", index, value) } } //输出结果 h e l l o g o l a n g ä ½ å ¥ ½ index:0, value=h index:1, value=e index:2, value=l index:3, value=l index:4, value=o index:5, value= index:6, value=g index:7, value=o index:8, value=l index:9, value=a index:10, value=n index:11, value=g index:12, value= index:13, value=你 index:16, value=好
package tiaojian import "fmt" func DemoBreak(){ sum := 0 for i :=0; i < 100; i++{ sum += i if sum >= 100{ fmt.Println("i=", i, "sum=", sum) break }else{ fmt.Println("sum=", sum) } } }
package tiaojian // continue作用 import "fmt" func DemoContinue(){ for i:=0; i < 5; i ++{ if i == 3 { fmt.Println("跳出本次循环:", i) continue } fmt.Println("i=",i) } } // 输出结果 开始运行: 当前机器状态: 正常 i= 0 i= 1 i= 2 跳出本次循环: 3 i= 4
package tiaojian // goto语句 import "fmt" func DemoGoto(){ fmt.Println("goto01") goto title1 fmt.Println("goto02") fmt.Println("goto03") title1: fmt.Println("goto04") fmt.Println("goto05") fmt.Println("goto06") }
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("division by zero")
}
return a / b, nil
}
func add(a, b int) int {
return a + b
}
package tiaojian // 99乘法表 import "fmt" func Demo99(){ for i := 1; i <=9; i++{ for j:=1; j <=i; j++{ fmt.Printf("%dx%d=%d ", j, i, i*j) if i == j{ println() } } } } // 输出结果 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。