Golang学习(二):运算符

文章目录

  • 1. 算数运算符
  • 2. 关系(比较)运算符
  • 3. 逻辑运算符
  • 4. 赋值运算符
  • 5. 位运算符
  • 6. 键盘输入语句
  • 7. 进制
  • 8. 位运算

1. 算数运算符

Golang学习(二):运算符_第1张图片

package main
import (
	"fmt" 
)

func main() {

	//重点讲解 /、%
	//说明,如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
	fmt.Println(10 / 4) 
	
	var n1 float32 = 10 / 4 //
	fmt.Println(n1)

	//如果我们希望保留小数部分,则需要有浮点数参与运算
	var n2 float32 = 10.0 / 4
	fmt.Println(n2)

	// 演示  % 的使用 
	// 看一个公式 a % b = a - a / b * b
	// fmt.Println("10%3=", 10 % 3) // =1
	// fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
	// fmt.Println("10%-3=", 10 % -3) // =1
	// fmt.Println("-10%-3=", -10 % -3) // =-1

	// ++ 和 --的使用
	var i int = 10
	i++ // 等价 i = i + 1
	fmt.Println("i=", i) // 11
	i-- // 等价 i = i - 1
	fmt.Println("i=", i) // 10

	if i > 0 {
		fmt.Println("ok")
	}
	
}

注意:

  1. 自增自减只能独立使用
  2. ++和–只能写后面

2. 关系(比较)运算符

Golang学习(二):运算符_第2张图片

package main
import (
	"fmt" 
)

func main() {
	//演示关系运算符的使用
	var n1 int = 9
	var n2 int = 8
	fmt.Println(n1 == n2) //false
	fmt.Println(n1 != n2) //true
	fmt.Println(n1 > n2) //true
	fmt.Println(n1 >= n2) //true
	fmt.Println(n1 < n2) //flase
	fmt.Println(n1 <= n2) //flase
	flag := n1 > n2
	fmt.Println("flag=", flag)

	
}

3. 逻辑运算符

Golang学习(二):运算符_第3张图片

package main
import (
	"fmt" 
)

//声明一个函数(测试)
func test() bool {
	fmt.Println("test....")
	return true
}

func main() {

	var i int = 10
	//短路与
	//说明 因为  i < 9 为 false ,因此后面的 test() 就不执行
	// if i < 9 && test() {
	// 	fmt.Println("ok...")
	// }

	if i > 9 || test() {
		fmt.Println("hello...")
	}

   /*

	//演示逻辑运算符的使用  &&
	var age int = 40
	if age > 30 && age < 50 {
		fmt.Println("ok1")
	}

	if age > 30 && age < 40 {
		fmt.Println("ok2")
	}

	//演示逻辑运算符的使用  ||

	if age > 30 || age < 50 {
		fmt.Println("ok3")
	}

	if age > 30 || age < 40 {
		fmt.Println("ok4")
	}

	//演示逻辑运算符的使用  !

	if age > 30 {
		fmt.Println("ok5")
	}

	if !(age > 30) {
		fmt.Println("ok6")
	} */

}

4. 赋值运算符

Golang学习(二):运算符_第4张图片

package main
import (
	"fmt" 
)

func test() int {
	return 90
}

func main() {
	//赋值运算符的使用演示
	// var i int 
	// i = 10 //基本赋值

	//有两个变量,a和b,要求将其进行交换,最终打印结果
	// a = 9 , b = 2 ==> a = 2 b = 9
	a := 9
	b := 2
	fmt.Printf("交换前的情况是 a = %v , b=%v \n", a, b)
	//定义一个临时变量
	t := a
	a = b //
	b = t //
	fmt.Printf("交换后的情况是 a = %v , b=%v \n", a, b)

	//复合赋值的操作
	a += 17 // 等价 a = a + 17
	fmt.Println("a=", a)


	var c int 
	c = a + 3 // 赋值运算的执行顺序是从右向左
	fmt.Println(c)

	//2)赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
	// 表达式:任何有值都可以看做表达式
	var d int
	d = a //  
	d = 8 + 2 * 8 // =的右边是表达式
	d = test() + 90 //  =的右边是表达式
	//d = 890 // 890常量
	fmt.Println(d)
}

5. 位运算符

Golang学习(二):运算符_第5张图片

6. 键盘输入语句

  1. 导入 fmt 包
  2. 调用 fmt 包的 fmt.Scanln() fmt.Scanf()
    Golang学习(二):运算符_第6张图片
    Golang学习(二):运算符_第7张图片
package main
import (
	"fmt" 
)


func main() {

	//要求:可以从控制台接收用户信息,【姓名,年龄,薪水, 是否通过考试 】。
	//方式1 fmt.Scanln
	//1先声明需要的变量
	var name string
	var age byte
	var sal float32
	var isPass bool
	// fmt.Println("请输入姓名 ")
	// //当程序执行到 fmt.Scanln(&name),程序会停止在这里,等待用户输入,并回车 
	// 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)


}

7. 进制

  1. %b 表示二进制输出
  2. 0开头表示8进制
  3. 0x开头表示
package main
import (
	"fmt" 
)


func main() {

	var i int = 5
	//二进制输出 
	fmt.Printf("%b \n", i)

	//八进制:0-7 ,满8进1. 以数字0开头表示
	var j int = 011 // 011=> 9
	fmt.Println("j=", j)

	//0-9及A-F,满16进1. 以0x或0X开头表示
	var k int = 0x11 // 0x11=> 16 + 1 = 17
	fmt.Println("k=", k)
}

8. 位运算

package main
import (
	"fmt" 
)
func main() {

	//位运算的演示
	fmt.Println(2&3) // 2
	fmt.Println(2|3) // 3
	fmt.Println(2^3) // 3
	fmt.Println(-2^2) //-4

	a := 1 >> 2 //0
	c := 1 << 2 //4
	fmt.Println("a=", a, "c=", c)
	
}

Golang学习(二):运算符_第8张图片

你可能感兴趣的:(Golang学习,golang)