go中if、for
流程控制
面向过程编程
- 自上而下的执行()
面向对象编程:让程序像人一样的思考来运行,而不是机械式的自上而下 (架构)
- 将世界抽象为一个个的对象,然后用程序来模拟这一个个的对象,然后进行一些人工化的操作实现
现实世界的逻辑
- 定义 (属性)
- 判断 (对错,导向不同的结果)
- 循环 (很多事情本质上都是在循环的) 时间(秒、时、分、日、月、年、周)
程序代码底层的本质,也和上面相同,所有编程语言都有的
- 定义 变量、常量
- 需要在程序中进行一些判断,来做出一些不同的决定 if 如果....如果条件二else if.....否则else.....
- 考分,90 + A 80 - 90 B 70-80 C 0-60 D ....
- 循环,我们希望程序不停的做一件事情 for 循环
- 服务器,我们希望程序是一直执行
- 大量计算,1 + .... + 100000000
顺序结构:自上而下运行
选择结构:满足了某些条件才会执行
- if (常用的)
- switch (也要学会使用,某些情况下可以优化代码结构)
循环结构:条件满足的情况,我们会去循环0 - N次。
- for
1、if
if a>10 {
fmt.Println("大于10")
} else {
fmt.Println("不大于10")
}
// if -- else
package main
import "fmt"
func main() {
var score int = 90
if score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
}
package main
import "fmt"
func main() {
// 判断用户密码输入是否正确
// 接收用户输入
// 第一次判断
// 第二次输出
// 第二次判断
var num1 string
var num2 string
fmt.Println("请输入密码:")
// Scan() 指针对象
fmt.Scan(&num1)
if num1 == "123" {
fmt.Printf("第一次密码正确")
fmt.Println("请再次输入密码:")
fmt.Scan(&num2)
if num2 == "123" {
fmt.Printf("第二次密码正确,登录成功")
} else {
fmt.Println("第二从密码错误")
}
} else {
fmt.Println("第一次密码错误")
}
}
// if -- else if -- else
package main
import "fmt"
func main() {
var score int = 60
if score >= 60 {
if score >= 90 && score <= 100 {
fmt.Println("A")
} else if score >= 80 && score < 90 {
fmt.Println("B")
} else if score >= 70 && score < 80 {
fmt.Println("C")
} else {
fmt.Println("D")
}
} else {
fmt.Println("不及格")
}
}
2、switch
package main
import "fmt"
func main() {
var score int = 100
// 通过switch来判断score
// case , 后面可以写多个条件
switch score {
case 100, 95, 91:
fmt.Println("A")
case 90:
fmt.Println("B")
case 80, 70, 60:
fmt.Println("C")
default:
fmt.Println("other")
}
// switch 是可以省略条件的,默认是 switch true
switch{
case false:
fmt.Println("false")
case true:
fmt.Println("true")
default:
fmt.Println("其他")
}
//var flag bool
//switch flag {
//case score<100 :
//
//}
}
switch 穿透
package main
import "fmt"
func main() {
a := false
switch a {
// 在case中 一旦使用了 fallthrough,则会强制执行下一个case语句
case false:
fmt.Println("1")
fallthrough
case true:
fmt.Println("2")
fallthrough
case true:
fmt.Println("3")
fallthrough
case false:
fmt.Println("4")
fallthrough
case false:
}
}
分支结构小结
-
if
-
if ... else if
-
if .... else
-
if ... else if ... else if ... else if... else
-
swtich - case
-
swtich - case - fallthrough
-
swtich - case - default
3、for
package main
import "fmt"
func main() {
//for 参数1:从哪里开始 参数2:到哪里结束 参数3:控制这个循环条件变量(自增和自减)
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
package main
import "fmt"
// 求1-10的和
func main() {
var sum int = 0
for i := 0; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
}
(1)、探究for循环
package main
import "fmt"
// 探究for循环 init:起始值 end:结束值 condition:条件变量
func main() {
i := 0
// for 循环可以直接
// 在for循环中定义的变量,作用域就只在 for循环内,外面是无法调用的
// for + 结束for条件就可以跑起来
for i <= 5 {
i++
}
fmt.Println(i)
}
package main
import (
"fmt"
)
// 探究for循环 init:起始值 end:结束值 condition:条件变量
func main() {
// 没有起始值、没有结束... 无限循环,死循环, 不要在开发中写这种代码。会内存溢出
for {
fmt.Println("hello,world")
}
}
(4)、终止循环
break : 结束整个循环,立即停止
continue :结束当前这次循环,继续进行下一次循环
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i == 5 {
//break
continue // 到这里就结束了当次循环,不会向下了,继续从头开始
}
fmt.Println(i)
}
}
本文来自博客园,作者:Linux小菜鸟,转载请注明原文链接:https://www.cnblogs.com/xuruizhao/p/18544827