Go 基础学习 - 第四天 (流程控制)

本文介绍了Go语言中的流程控制结构,包括顺序结构、选择结构(if、switch)、循环结构(for)以及break和continue的用法,还涉及了字符串操作和遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程控制

程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构
顺序结构:从上到下,逐步执行。默认的逻辑
选择结构:条件满足某些代码才会执行

  • if
  • switch
  • select, channel 通道使用的
    循环结构:条件满足某些代码会被反复执行0-N次
  • for

if

package main

import "fmt"

func main() {
    // 验证密码,再次输入密码
	var a,b int
	var pwd int = 20230911

	// 用户的输入
	fmt.Print("请输入密码:")
	fmt.Scan(&a)

	// 验证密码输入是否正确
	if a == pwd {
		fmt.Print("请再次输入密码:")
		fmt.Scan(&b)
		if b == pwd {
			fmt.Println("登录成功了")
		} else{
			fmt.Println("登录失败,第二次输入密码错误")

		}
	} else {
		fmt.Println("登录失败,密码错误")
	}

}

switch | fallthrough 穿透


package main

import "fmt"

func main() {
    var score int = 70
	switch score {
	case 90:
			fmt.Println("A")
		case 80:
			fmt.Println("B")
		case 70:
			fmt.Println("C")
			fallthrough // case穿透,不管下一个条件满不满足都会执行;需要利用 break 防止穿透
		default:
			fmt.Println("D")
	}


	// switch 默认的条件是 bool = true
	// switch {}
}

for

package main
import "fmt"

func main() {
	var sum int = 0

	// for 起始值:循环条件:控制变量自增或自减
	// for : 循环条件  === 需要在内部控制条件
	// for {} 无线循环


	// 计算 1 到 10 和
    for i:=1; i<=10; i++ {
		sum = sum + i
	}
	fmt.Println(sum)
}

5*5 的方阵

package main

import "fmt"

func main() {
    for i:=1; i<=5; i++ {
		for j:=1; j<=5; j++ {
			fmt.Print("*")
		}
		fmt.Println("")

	}
}

99 乘法表

package main

import "fmt"

func main() {
    for i:=1; i<=9; i++ {
		// for j:=1; j<=9; j++ {
		// 	if j < i {
		// 		fmt.Printf("%d*%d=%d",i,j,i*j)
		// 	}
		// }
		for j:=1; j<=i; j++ {
			fmt.Printf("%d * %d = %d  ",i,j,i*j)
		}
		fmt.Println("")
	}
}

break 和 continue

  • break 结束当前整个循环
  • continue 结束当次循环

遍历 string

Go 中的字符串是一个字节的切片,可以通过将其内容封装在 “” 中来创建字符串,Go中的字符串是 Unicode 兼容的,并且是 UTF-8编码。
字符串是一些字节的集合。

package main

import "fmt"

func main() {
    str := "hello"
	// fmt.Print(str)
	// fmt.Println("字符串长度为:",len(str))
	// fmt.Print("%c", str[2])

	// for i:=0; i< len(str) ; i++ {
	// 	fmt.Printf("%c\n",str[i])
	// }

	for i,v:= range str {
		fmt.Print(i)
		fmt.Printf("%c\n",v)
	}

	// string 是不能修改的
	str[2] = "A" // .\hello.go:21:2: cannot assign to str[2] (neither addressable nor a map index expression)
	fmt.Printf("%c\n",str[2])

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值