golang学习笔记006--运算符

目录

  • 1.算术运算符
  • 2.关系运算符
  • 3.逻辑运算符
  • 4.位运算
  • 5.其他运算符
  • 6.键盘输入语句
  • 7.进制
  • 8.原码,反码,补码
  • 9.程序流程控制
    • if
    • switch
    • for

1.算术运算符

● fmt.Println(10/4)结果为2.如果运算符都是整数,除后,去掉小数部分,保留整数部分
● 如果我们希望保留小数部分,则需要有浮点数参与运算
● 当一个数取模时,等价于 a%b=a-b/b*b
● go语言自增自减只能当作一个独立语言使用,不能这样使用:a=i++
● go语言只有a++,a–.没有++a,–a

2.关系运算符

● 关系运算符的结果都是bool型

3.逻辑运算符

● && 短语与:如果第一个为false,则第二个条件不会判断,结果为false
● || 短路或:如果第一个条件为true,则第二个不会判断,结果为true

4.位运算

● & 按位与
● | 按位或
● ^ 按位异或
● << 左移
● >> 右移

5.其他运算符

● & 返回变量存储地址
● * 指针变量

特别说明:go语言明确不支持三元运算符

6.键盘输入语句

	//方式一: 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)

golang学习笔记006--运算符_第1张图片

	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学习笔记006--运算符_第2张图片

7.进制

对于整数,有四种表示方式
● 二进制:在golang中,不能直接使用二进制来表示一个整数,他沿用了c的特点
● 十进制
● 八进制:以数字0开头
● 十六进制:以0x或0X开头

8.原码,反码,补码

对于有符号的而言:
● 二进制的最高位是符号位: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)

9.程序流程控制

if

	if 条件表达式{
	执行代码块
	}
	if age>18{
	fmt.Println("成年")
	}
	注意:
	    ■ 条件表达式不用写括号
	    ■ 在if中,可以直接定义一个变量
	if age:=20;age>18{
	fmt.Println("成年")
	}
	    ■ if b=false错误,不能是赋值语句

switch

  1. case/switch 后面是一个表达式(即:常量值,变量,一个有返回值的函数等都可以)
  2. case后的各个表达式的值的数据类型必须和switch的表达式数据类型一致
  3. case后面可以带多个表达式,使用逗号隔开.比如case 表达式1,表达式2
  4. case后面的表达式如果是常量值(字面值),则要求不能重复
  5. case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后switch,如果没有匹配,执行default
  6. default语句不是必须的
  7. switch后也可以不带表达式,类似if-else使用
  8. switch后也可以直接声明/定义一个对象,分号结束,不推荐
  9. switch穿透fallthrough,如果在case语句块后面增加fallthrough,则会继续执行下一个case,默认只穿透一层
    在这里插入图片描述
    golang学习笔记006--运算符_第3张图片
  10. Type Switch:switch语句还可以被用于type-switch来判断某个interface变量中实际指向的类型变量
    golang学习笔记006--运算符_第4张图片

for

for-range 可以方便遍历字符串和数组
golang学习笔记006--运算符_第5张图片

break使用注意事项
○ break默认跳出最近的for循环
○ break后面可以指定标签,跳出标签对应的for循环(不是跳到标签位置继续执行,是结束对应for循环)
golang学习笔记006--运算符_第6张图片
continue使用注意事项
用于结束本次循环,继续执行下一次循环
goto
不推荐使用

你可能感兴趣的:(golang,golang,开发语言,后端)