Go语言核心编程---04运算符

4.1 运算符的基本介绍

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等,有算术运算符、赋值运算符、比较运算符/关系运算符、逻辑运算符、位运算符、其他运算符。

4.1.1 算术运算符
运算符运算范例结果
+正号+33
-负号-4-4
+5 + 510
-6 - 42
*3 * 412
/5 / 51
%取模(取余)7 % 52
++自增a=2 a++a=3
自减a=2 a–a=1
+字符串相加“he” + “llo”“hello”
  • 注意事项
    • 对于除号"/",它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。如:x:=19/5结果是3。
    • 当对一个数取模时,可以等价a%b=a-a/b*b
    • Go自增自减只能当做一个独立语言使用,不能写成a = i++if i++ >0这种
    • Go的++和–只能写在变量的后面,不能写在变量的前面
    • Go的设计者去掉c/java的自增自减容易混淆的写法
4.1.2 关系运算符(比较运算符)
运算符运算范例结果
==相等于4==3false
!=不等于4!=3true
<小于4<3false
>大于4>3true
<=小于等于4<=3false
>=大于等于4>=3true
  • 注意事项
    • 关系运算符的结果都是bool型,也就是要么true,要么false
    • 关系运算符组成的表达式,称为关系表达式
4.1.3 逻辑运算符
运算符描述
&&逻辑与运算符
||逻辑或运算符
!逻辑非运算法
  • 注意事项
    • &&也叫短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false
    • ||也叫短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true
4.1.4 赋值运算法
运算符描述
=将表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
^=按位异或后赋值
|=按位或后赋值
  • 注意事项
    • 运算顺序从右往左
    • 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
4.1.5 位运算符
运算符描述
&按位与运算符是双目运算符,其功能是参与运算的两数各自对应的二进制相与。
|按位或运算符是双目运算符,其功能是参与运算的两数各自对应的二进制相或。
^按位异或运算符是双目运算符,其功能是参与运算的两数各自对应的二进制相异或。
<<左移运算符是双目运算符,其功能把<<左边的运算数的各二进制全部左移若干位,高位丢弃,低位补0。左移n为就是乘以2的n次方。
>>右移运算符是双目运算符,其功能把>>左边的运算数的各二进制全部右移若干位,低位溢出,符号位不变,并用符号位补溢出的高位。右移n为就是除以2的n次方。
4.1.6 其他运算符
运算符描述实例
&返回变量存储地址&a:将给出变量的实际地址
*指针变量*a:是一个指针变量
  • 说明:Go语言明确不支持三元运算符
4.1.7 运算符的优先级

在这里插入图片描述

4.2 键盘输入语句

  • 步骤
    • 导入fmt包
    • 调用fmt包的fmt.Scanln()或fmt.Scanf()函数
      • func Scanln(a …interface{}) (n int, err error):类似Scan,但会在换行时才停止扫描,最后一个条目后必须有换行或者到达结束位置。
      • func Scanf(format string, a …interface{}) ( n int, err error):Scanf从标准输入扫描文本,根据format参数指定的格式将成功读取的空白分割的值保存进成功传递给本函数的参数。返回成功扫描的条目个数和遇到的任何错误。
package main

import "fmt"

func main() {
   //方式1:fmt.Scanln
   var name string
   var age int
   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)

   //方式2: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)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值