标签:循环控制 等价 com string lan 大于 highlight 乘法 code
程序从上往下执行,中间没有任何的判断和跳转。

if age > 18 {
fmt.Println("你年龄大于18,要对自己的行为负责!")
}
// golang支持在if中,直接定义一个变量,比如下面
if age := 20; age > 18 {
fmt.Println("你年龄大于18,要对自己的行为负责!")
}

if age > 18 {
fmt.Println("==")
} else { // else不能写在下一行
fmt.Println("====")
}




package main
import (
"fmt"
)
// 写一个非常简单的函数
func test(char byte) byte {
return char + 1
}
func main() {
fmt.Println("请输入一个字符 a,b,c,d,e,f,g")
fmt.Scanf("%c", &key)
switch test(key) + 1 { // 将语法现象
case ‘a‘:
fmt.Println("周一, 猴子穿新衣")
case ‘b‘:
fmt.Println("周二,猴子当小二")
case ‘c‘:
fmt.Println("周三,猴子爬雪山")
//...
default:
fmt.Println("输入有误...")
}
var n1 int32 = 51
var n2 int32 = 20
switch n1 {
case n2, 10, 5: // case 后面可以有多个表达式
fmt.Println("ok1")
case 90:
fmt.Println("ok2~")
}
// switch 后也可以不带表达式,类似 if --else分支来使用
var age int = 10
switch {
case age == 10:
fmt.Println("age == 10")
case age == 20:
fmt.Println("age == 20")
default:
fmt.Println("没有匹配到")
}
//case 中也可以对 范围进行判断
var score int = 90
switch {
case score > 90:
fmt.Println("成绩优秀..")
case score >= 70 && score <= 90:
fmt.Println("成绩优良...")
case score >= 60 && score < 70:
fmt.Println("成绩及格...")
default:
fmt.Println("不及格")
}
// switch 后也可以直接声明/定义一个变量,分号结束,不推荐
switch grade := 90; { // 在golang中,可以这样写
case grade > 90:
fmt.Println("成绩优秀~..")
case grade >= 70 && grade <= 90:
fmt.Println("成绩优良~...")
case grade >= 60 && grade < 70:
fmt.Println("成绩及格~...")
default:
fmt.Println("不及格~")
}
// switch 的穿透 fallthrought
var num int = 10
switch num {
case 10:
fmt.Println("ok1")
fallthrough // 默认只能穿透一层 // 立马输出ok2,不用判断
case 20:
fmt.Println("ok2")
fallthrough
case 30:
fmt.Println("ok3")
default:
fmt.Println("没有匹配到..")
}
}

package main
import (
"fmt"
)
func main() {
for i := 1; i <= 10; i++ {
fmt.Println("你好,尚硅谷", i)
}
// for循环的第二种写法
j := 1 //循环变量初始化
for j <= 10 { //循环条件
fmt.Println("你好,尚硅谷~", j)
j++ //循环变量迭代
}
// for循环的第三种写法, 这种写法通常会配合break使用
k := 1
for { // 这里也等价 for ; ; {
if k <= 10 {
fmt.Println("ok~~", k)
} else {
break //break就是跳出这个for循环
}
k++
}
// 字符串遍历方式1-传统方式
var str string = "hello,world!北京"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i]) // 使用到下标...
}
// 字符串遍历方式1-传统方式
var str string = "hello,world!北京"
str2 := []rune(str) // 就是把 str 转成 []rune
for i := 0; i < len(str2); i++ {
fmt.Printf("%c \n", str2[i]) // 使用到下标...
}
fmt.Println()
// 字符串遍历方式2-for-range
str = "abc~ok上海"
for index, val := range str {
fmt.Printf("index=%d, val=%c \n", index, val)
}
}


package main
import "fmt"
func main(){
// 使用while方式输出10句hello,world
// 循环变量初始化
var i int = 1
for {
if i > 10 { // 循环条件
break // 跳出for循环,结束for循环
}
fmt.Println("hello,world", i)
i++ // 循环变量的迭代
}
fmt.Println("i=", i)
// 使用的do...while实现完成输出10句hello,ok
var j int = 1
for {
fmt.Println("hello,ok", j)
j++ // 循环变量的迭代
if j > 10 {
break // break 就是跳出for循环
}
}
}
package main
import "fmt"
func main() {
var totalLevel int = 10
for i := 1; i <= totalLevel; i++ {
// 在打印*前先打印空格
for k := 1; k <= totalLevel - i; k++ {
fmt.Print(" ")
}
// j 表示每层打印多少*
// 第一层1个* 第二层3个* 第三层5个* 第四层7个*
// j在等于1的时候或者1*i-1或者totalLevel的时候打印*,否则打印空格
for j :=1; j <= 2 * i - 1; j++ {
if j == 1 || j == 2 * i - 1 || i == totalLevel {
fmt.Print("*") // 不会换行
} else {
fmt.Print(" ")
}
}
fmt.Println() // 换行
}
}
package main
import "fmt"
func main() {
// 1*1=1
// 2*1=2 2*2=4
// 3*1=3 3*2=6 3*3=9
// i 表示第几层, j表示从1到i
for i := 1; i < 10; i++{
for j := 1; j <= i; j++{
fmt.Printf( "%v*%v=%v ", i, j, i*j) // 注意这里是Printf
}
fmt.Println()
}
}
标签:循环控制 等价 com string lan 大于 highlight 乘法 code
原文地址:https://www.cnblogs.com/yzg-14/p/12178827.html