Go语言入门2(流程控制,string)

流程控制

选择结构(分支语句)

​ 因为switch只能匹配固定值,推荐使用if-else做条件筛选

if-else判断

package main

import "fmt"

func main() {
	var tmpA int
	fmt.Scanln(&tmpA)
	if tmpA >= 90 {
		fmt.Println("tmpA >= 90")
	} else if tmpA < 90 && tmpA >= 60 {
		fmt.Println("tmpA < 90 && tmpA >= 60")
	} else {
		fmt.Println("tmpA < 60")
	}
}

switch判断

​ switch语句执行的过程从上至下,知道找到匹配项,匹配项后面也不需要再加break,case之后默认添加break

 package main

import "fmt"
// switch 后面如果什么都不跟,就会默认为bool类型,值为true
func main() {
	var tmpA int
	fmt.Scanln(&tmpA)
	switch tmpA {
	case 90:
		fmt.Println("tmpA = 90")
	case 80:
		fmt.Println("tmpA = 80")
	default:
		fmt.Println("default")
	}
}

fallthrough穿透(和break相反)

​ switch默认情况下匹配成功后就不会执行其他case,如果我们需要执行后面的case,可以使用fall through穿透实现,它会强制执行后面的语句,并不会判断后面case表达式是否匹配

package main

import "fmt"

func main() {
	var tmpA int
	fmt.Scanln(&tmpA)
	switch tmpA {
	case 90:
		fmt.Println("tmpA = 90")
		fallthrough
	case 80:
		fmt.Println("tmpA = 80")
		fallthrough
	default:
		fmt.Println("default")
	}
}

循环结构(for循环)

package main

import "fmt"

func main() {
    // 循环的条件判断没有括号,同样break和continue使用同c语言一样
	for i := 0; i < 10; i++ {
		if i == 4 {
			continue // 结束当前循环
		} else if i == 6 {
			break    // 结束整个循环
		}
		fmt.Print(i) 
	}
}

string

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

package main

import "fmt"

func main() {
	// string 是不能被单独修改里面的某一位的
	str := "string example"
	fmt.Println(str)
	// 获取字符串长度
	fmt.Println("字符串长度为: ", len(str))
	// 获取指定的字节(直接获得的是Ascll编码)
	fmt.Println("获取指定的字节:", str[2])
	// 格式化输出指定字节
	fmt.Printf("获取指定的字节: %c \n", str[2])
	// 使用for循环遍历字符串
	for i := 0; i < len(str); i++ {
		fmt.Printf("遍历字符串: %c\n", str[i])
	}
	// for range循环,用于遍历数组以及切片....
	// i:字符串下标
	// v:当前下表对应的值,可以直接使用
	for i, v := range str {
		fmt.Printf("i = %d,v = %c \n", i, v)
	}
}

热门相关:地球第一剑   仗剑高歌   第一神算:纨绔大小姐   仗剑高歌   天启预报