标签:变量 逻辑 循环 一次循环 有一个 nbsp amp 格式化 scan
package main
func main() {
/*switch 1 + 1 {
case 1:
fmt.Println("equal one")
case 2:
fmt.Printf("equal two")
case 3:
fmt.Println("equal three")
default:
fmt.Println("都不满足")
}*/
// 变量
/*var age int
fmt.Scanln(&age)
switch age {
case 1:
fmt.Println("equal one")
case 2:
fmt.Printf("equal two")
case 3:
fmt.Println("equal three")
default:
fmt.Println("都不满足")
}*/
// 注意事项:数据类型一致的情况
}
for {
...
}
for 1 > 2 {
...
}
flag := true
for flag {
...
}
package main
import (
"fmt"
"time"
)
func main() {
// 示例1:死循环
/*fmt.Println("开始循环")
for {
fmt.Println("红鲤鱼与绿鲤鱼与驴")
time.Sleep(time.Second * 1) // 等一秒再继续执行
}
fmt.Println("结束循环")*/
// 示例2:
/*fmt.Println("开始循环")
for 2 > 1 {
fmt.Println("红鲤鱼与绿鲤鱼与驴")
time.Sleep(time.Second * 1) // 等一秒再继续执行
}
fmt.Println("结束循环")*/
// 示例3:
/*fmt.Println("开始循环")
number := 1
for number < 5 {
fmt.Println("红鲤鱼与绿鲤鱼与驴")
number = 10
time.Sleep(time.Second * 1) // 等一秒再继续执行
}
fmt.Println("结束循环")*/
// 示例4:
/*fmt.Println("开始循环")
number := 1
for number < 5 {
fmt.Println("红鲤鱼与绿鲤鱼与驴")
number = number + 1
time.Sleep(time.Second * 1) // 等一秒再继续执行
}
fmt.Println("结束循环")*/
// 示例5:
fmt.Println("开始循环")
flag := true
for flag {
fmt.Println("红鲤鱼与绿鲤鱼与驴")
flag = false
time.Sleep(time.Second * 1) // 等一秒再继续执行
}
fmt.Println("结束循环")
}
for i := 1; i < 10 {
fmt.Println("XXX")
i = i + 1
}
for i := 1; i < 10; i = i + 1 {
fmt.Println("XXX")
}
// 对于i = i + 1 的简写:i++ // 对于i = i - 1 的简写:i--
在for循环中使用,当循环遇到continue关键字时,会停止当前的循环继续执行下一次循环。
for {
fmt.Println("samuel")
continue
fmt.Println("nagase")
}
在for循环中,循环中一旦遇到break,就会立刻跳出循环
for {
fmt.Println("xxxxx")
break
fmt.Println("samuel")
}
goto语句在C和Go中存在,Java、Python没有这样的语法。
该语法用于跳转到指定的行,然后向下执行代码
package main
import "fmt"
func main() {
var userName string
fmt.Printf("请输入您的用户名:")
fmt.Scanln(&userName)
if userName == "samuel" {
// svip
goto SVIP
} else if userName == "nagase" {
// vip
goto VIP
}
fmt.Println("预约······")
VIP:
fmt.Println("等号······")
SVIP:
fmt.Println("进入······")
}
将数据格式化成为特定格式的字符串时,可以使用字符串格式化。
fmt.Printf("My name is %s , I am going to %s in this %s !", userName, userBehavior, userLocation)
+、-、*、/、%、++、--
==、!=、>、<、>=、<=
&&、||、!
if !true {
fmt.Println("xxx")
}
&、|、^、<<、>>
计算机中的存储、运算、网络传输等任何行为,本质上都是二进制的操作,例如:01010101。
十进制和二进制的转换关系
| 十进制 | 二进制 |
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| ... | ... |
二进制转换为十进制
10101 -> 2 ** 4 + 2 ** 2 + 2 ** 0 = 16 + 4 + 1 = 21
十进制转换为二进制
99 -> 64 + 32 + 2 + 1 => 2 ** 6 + 2 ** 5 + 2 ** 1 + 2 ** 0 = 1100011
位运算指的是二进制之间的运算
# 1、按位进行与运算(只有两个全是1才是1) r1 := 5 & 99 5 -> 0000101 99 -> 1100011 0000001 -> 1 # 2、按位进行或运算(只要有一个1就是1) r2 := 5 | 99 5 -> 0000101 99 -> 1100011 1100111 -> 2 ** 6 + 2 ** 5 + 2 ** 2 + 2 ** 1 + 2 ** 0 = 103 # 3、按位进行异或运算(只要上下不同就是1) r3 := 5 ^ 99 5 -> 0000101 99 -> 1100011 1100110 -> 64 + 32 + 4 + 2 = 102 # 4、按位向左移动(右边补0) r4 := 5 << 2 5 -> 101 向左移动两位 -> 10100 -> 16 + 4 = 20 # 5、按位向右移动(右边切割) r5 := 5 >> 2 5 -> 101 向右移动两位 -> 1 -> 1 # 6、比较清除(以第一个值为参考系,让前面的和后面的值的二进制进行比较,如果两个位置都是1,则将前面的那个1位置置为0) r6 := 5 ^ 99 5 -> 0000101 99 -> 1100011 0000100 -> 4
=、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=
5 ----- *、/、%、<<、>>、&、&^
4 ----- +、-、|、^
3 ----- ==、!=、<、<=、>、>=
2 ----- &&
1 ----- ||
注意:不要想办法去记住他,使用括号
叮嘱:不要太过于用心去背、记,只要认识即可
标签:变量 逻辑 循环 一次循环 有一个 nbsp amp 格式化 scan
原文地址:https://www.cnblogs.com/nagase/p/13170670.html