16 Go 算术/关系/逻辑/位/赋值运算符

1 Golang算术运算符

注意点:

1)如果参与运算的都是整型,那么结果也是整型。如果希望保留小数,则需要浮点型参与运算;

2)%运算符,a%b 等价于 a-a/b*b,通过后者能计算出有符号数字参与%运算符后,得到结果的符号;

3)自增++和自减--在Go语言中是单独的语句,并不是运算符,不能参与表达式,也不能参与其他运算。且只有后自增(a++)和后自减(a--),没有前自增和前自减

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     fmt.Println("整数除运算,结果只会是整数,余数会被省略截断")
 7     fmt.Println(10/3) // 3
 8     fmt.Println(10.0/3) // 3.3333333333333335
 9 
10     fmt.Println("")
11     fmt.Println("取余运算符的结果的符号问题")
12     fmt.Println(10%3) // 1
13     fmt.Println(-10%3) // -1,等价于:-10-(-10/3*3)=-1
14     fmt.Println(-10%-3) // -1,等价于:-10-(-10/-3*-3)=-1
15     fmt.Println(10%-3) // 1,等价于:10-(10/-3*-3)=1
16 
17     fmt.Println("")
18     fmt.Println("自增自减问题")
19     num := 10
20     // fmt.Println(num++) // syntax error: unexpected ++, expecting comma or )
21     // --num //  syntax error: unexpected --, expecting }
22     num++ // 自增自减只能独占一行,不能参与运算也不能参与表达式,也没有++num
23     fmt.Println(num) // 11
24 }

 

习题:

1 假如还有97天放假,请问还有几个星期零几天?

// 1 假如还有97天放假,请问还有几个星期零几天?
fmt.Printf("还有 %v 个星期零 %v 天放假。", 97/7, 97%7) // 还有 13 个星期零 6 天放假。

2 已知摄氏温度=5/9*(华氏温度-100),设计开发一个输入华氏温度计算摄氏温度的程序

fmt.Println("请输入需要换算的华氏温度度数值:")
var  fTemp float64
fmt.Scan(&fTemp)
var cTemp float64 = 5.0/9*(fTemp - 100)
fmt.Printf("华氏温度 %v 等于摄氏温度 %v", fTemp, cTemp)

 


 

2 关系运算符 

 

 关系运算符同其他语言运算符,不再赘述

 


 

3  逻辑运算符

 

 

 逻辑运算符同其他语言运算符,也存在短路现象,如下:

&&运算符,左侧为flase时,就不再执行右侧表达式,因为&&运算的结果已经确定为false

||运算符,左侧为true时,就不再执行右侧表达式,因为||运算的结果已经确定为true

 


 

4 位运算符


位运算符对整数在内存中的二进制位进行操作,同JAVA的位运算符

 

 

 晚些再补充例子

 


5 赋值运算符

 

 

注意点:

1 赋值运算符的运算顺序从右向左

2 赋值运算的左边只能是变量,右边可以是变量、表达式、常量

3 复合赋值运算符等价于下面的效果

  a +=3 等价于 a = a + 3

 


6 其他运算符

 

 

 


7 三元运算符

特别强调,Gollang语言没有三元运算符!

原因如下:

Frequently Asked Questions (FAQ) - The Go Programming Language

 

posted @ 2022-05-15 23:04  风铃如沧海  阅读(68)  评论(0编辑  收藏  举报