● fmt.Println(10/4)结果为2.如果运算符都是整数,除后,去掉小数部分,保留整数部分
● 如果我们希望保留小数部分,则需要有浮点数参与运算
● 当一个数取模时,等价于 a%b=a-b/b*b
● go语言自增自减只能当作一个独立语言使用,不能这样使用:a=i++
● go语言只有a++,a–.没有++a,–a
● 关系运算符的结果都是bool型
● && 短语与:如果第一个为false,则第二个条件不会判断,结果为false
● || 短路或:如果第一个条件为true,则第二个不会判断,结果为true
● & 按位与
● | 按位或
● ^ 按位异或
● << 左移
● >> 右移
● & 返回变量存储地址
● * 指针变量
特别说明:go语言明确不支持三元运算符
//方式一: fmt.Scanln
var name string
var age byte
var sal float32
var isPass bool
fmt.Println("请输入姓名:")
fmt.Scanln(&name)
fmt.Println("请输入年龄:")
fmt.Scanln(&age)
fmt.Println("请输入薪水:")
fmt.Scanln(&sal)
fmt.Println("是否通过考试:")
fmt.Scanln(&isPass)
fmt.Printf("姓名是%v \n 年龄是%v \n 薪水是%v \n 是否通过考试%v \n",name,age,sal,isPass)
var name string
var age byte
var sal float32
var isPass bool
//方式二:fmt.Scanf,可以按指定的格式输入
fmt.Println("请输入的姓名,年龄,薪水,是否通过考试,使用空格隔开")
fmt.Scanf("%s %d %f %t",&name,&age,&sal,&isPass)
fmt.Printf("姓名是%v \n 年龄是%v \n 薪水是%v \n 是否通过考试%v \n",name,age,sal,isPass)
对于整数,有四种表示方式
● 二进制:在golang中,不能直接使用二进制来表示一个整数,他沿用了c的特点
● 十进制
● 八进制:以数字0开头
● 十六进制:以0x或0X开头
对于有符号的而言:
● 二进制的最高位是符号位:0表示正数,1表示负数
○ 1 ===》[0000 0001]-1===>[1000 0001]
● 正数的原码,反码,补码都一样
● 负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
○ 1===>原码[0000 0001]反码[0000 0001]补码[0000 0001]
○ -1===>原码[1000 0001]反码[1111 1110]补码[1111 1111]
● 负数的补码=它的反码+1
● 0的反码,补码都是0
● 在计算机运算的时候,都是以补码的方式来运算的.1+1 1-1 = 1+(-1)
if 条件表达式{
执行代码块
}
if age>18{
fmt.Println("成年")
}
注意:
■ 条件表达式不用写括号
■ 在if中,可以直接定义一个变量
if age:=20;age>18{
fmt.Println("成年")
}
■ if b=false错误,不能是赋值语句
break使用注意事项
○ break默认跳出最近的for循环
○ break后面可以指定标签,跳出标签对应的for循环(不是跳到标签位置继续执行,是结束对应for循环)
continue使用注意事项
用于结束本次循环,继续执行下一次循环
goto
不推荐使用