首页 > 其他分享 >Go-05 Golang中的运算符

Go-05 Golang中的运算符

时间:2022-12-01 09:23:22浏览次数:55  
标签:Golang ... fmt 运算符 Println Go age 赋值

package main

import "fmt"

/*	Golang 中的运算符
	Golang内置的运算符:
	1. 算术运算符:+ - * / %
	2. 关系运算符:!=  ==  >  >=  <  <=	返回值是True或者False
	3. 逻辑运算符:&& || !(逻辑NOT运算符,表示条件取反)	返回值是True或者False
	4. 赋值运算符:= += -= *= /= %=
	5. 位运算符(了解):位运算符对整数在内存中的二进制位进行操作。
	注意:++(自增)和 --(自减)在Go语言中是单独的语句,并不是运算符。
*/

func test() bool {
	fmt.Println("test......test......")
	return true
}

func main() {
	// 1. 算数运算
	fmt.Println("10+3=", 10+3) // 10+3= 13
	fmt.Println("10-3=", 10-3) // 10-3= 7
	fmt.Println("10*3=", 10*3) //	10*3= 30
	// 除法运算注意:如果运算的数都是整数,那么除后,会去掉小数部分,保留整数部分。
	fmt.Println("10/3=", 10/3)     //	10/3= 3
	fmt.Println("10.0/3=", 10.0/3) //	10.0/3= 3.3333333333333335
	fmt.Println("10%3=", 10%3)     //	10%3= 1
	fmt.Println("-10%3=", -10%3)   //	-10%3= -1
	fmt.Println("10%-3=", 10%-3)   //	10%-3= 1
	fmt.Println("-10%-3=", -10%-3) //	-10%-3= -1
	fmt.Println()
	// 1.1 ++ 和 -- 的错误使用方法如下
	// 错误使用方式1:
	//var i int = 8
	//var a int
	//a = i++	//直接报错,i++ 只能单独i自己使用
	//a = i--	//直接报错,i-- 只能单独i自己使用
	// 错误使用方式2:
	//var i int = 8
	//++i	//	错误,在golang中没有 前++
	//--i	//  错误,在golang中没有 前--
	// ++ 和 -- 的正确使用方式
	var i int = 1
	i++
	fmt.Println("输出i=", i) // i= 2
	// 2.关系运算,返回值为True或者False
	// 演示关系运算符的使用
	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)  // false
	fmt.Println(n1 <= n2) // false
	tag := n1 > n2
	fmt.Println("tag=", tag) // tag= true
	// 3.逻辑运算符,&& || !
	// 3.1 && 逻辑AND运算符。如果两边的操作数都是True,则为True,否则为False。
	var age int = 40
	if age > 30 && age < 50 {
		fmt.Println("OK1") // 这个条件满足,它会打印
	}
	if age > 30 && age < 40 {
		fmt.Println("OK2") // 这个条件不满足,它不会被打印
	}
	// 3.2 || 逻辑OR运算符。如果两边的操作数有一个True,则为True,否则为False。
	if age > 30 || age < 50 {
		fmt.Println("OK3") // 这个条件满足,它会打印
	}
	if age > 30 || age < 40 {
		fmt.Println("OK4") // 这个条件满足,它会打印
	}
	if age > 50 || age < 40 {
		fmt.Println("OK5") // 这个条件不满足,它不会被打印
	}
	// 3.3  ! 逻辑NOT运算符。如果条件为True,取反后则为False,如果条件为False,取反后则为True。
	// 演示一下逻辑运算符 ! 的使用
	if age > 30 {
		fmt.Println("OK6") // 这个条件满足,它会打印
	}
	if !(age > 50) {
		// age的值是40,age > 50,这个条件不成立。前面加上!表示if条件取反
		// 这个条件不成立,返回值为False,前面加上!表示if条件取反,条件就会成立(加上!真实条件就变成了age < 50)
		fmt.Println("OK7") // 这个条件满足,它会打印
	}
	// 逻辑运算符短路演示
	var is int = 10
	if is < 9 && test() {
		fmt.Println("...ok...ok...")
	}
	if is > 9 || test() {
		fmt.Println("...hello...true...le...") // 这个条件满足,它会打印
	}
	// 4. 赋值运算符
	/*	赋值运算符
		赋值运算从右向左。
		1. = 简单的赋值运算符,将一个表达式的值赋值给一个左值
		2. += 相加后再赋值
		3. -= 相减后再赋值
		4. *= 相乘后再赋值
		5. /= 相处后再赋值
		6. %= 求余后再赋值
	*/
	dd := 8 + 2*8   // 赋值运算从右向左
	fmt.Println(dd) // 24
	x, y, z, n, k := 10, 200, 100, 30, 25
	x += 5                           // 相同于 x=x+5
	fmt.Println("x += 5 的值是:", x) // x += 5 的值是: 15
	y -= 5                           // 相同于 y=y-5
	fmt.Println("y -= 5 的值是:", y) // y -= 5 的值是: 195
	z *= 5                           // 相同于 z=z*5
	fmt.Println("z *= 5 的值是:", z) // z *= 5 的值是: 500
	n /= 5                           // 相同于 n=n/5
	fmt.Println("n /= 5 的值是:", n) // n /= 5 的值是: 6
	k %= 5                           // 相同于 k=k%5
	fmt.Println("k %= 5 的值是:", k) // k %= 5 的值是: 0
	// 5.运算符练习
	// 练习1:有两个变量,aaa和bbb,要求将其进行交换,最终打印结果
	aaa := 9
	bbb := 2
	ttt := aaa
	aaa = bbb
	bbb = ttt
	fmt.Printf("交换后的情况是 aaa=%v, bbb=%v \n", aaa, bbb) // 交换后的情况是 aaa=2, bbb=9
	// 练习2:假如还有100天放假,问:还有xx个星期零xx天
	var days int = 100
	var week int = days / 7
	var day int = days % 7
	fmt.Printf("距离放假目前还有 %d 个星期,零%d 天\n", week, day) // 距离放假目前还有 14 个星期,零2 天

	/*	上面代码的全部打印结果如下所示:
		PS C:\Users\Zhaoshan.lu\go\DaDi> go run .\07.go
		10+3= 13
		10-3= 7
		10*3= 30
		10/3= 3
		10.0/3= 3.3333333333333335
		10%3= 1
		-10%3= -1
		10%-3= 1
		-10%-3= -1

		输出i= 2
		false
		true
		true
		tag= true
		OK1
		OK3
		OK4
		OK6
		OK7
		...hello...true...le...
		24
		x += 5 的值是: 15
		y -= 5 的值是: 195
		z *= 5 的值是: 500
		n /= 5 的值是: 6
		k %= 5 的值是: 0
		交换后的情况是 aaa=2, bbb=9
		距离放假目前还有 14 个星期,零2 天
		PS C:\Users\Zhaoshan.lu\go\DaDi>

	*/
}




标签:Golang,...,fmt,运算符,Println,Go,age,赋值
From: https://www.cnblogs.com/ludundun/p/16940421.html

相关文章

  • [15-445]Join Algorithms memo (Join 为什么要用小表做驱动表)
    NestedLoopJoin这一章节主要讲解join的算法,我想记录一些重点的地方。有趣的是关于NestedLoopjoin对驱动表为什么小表会更好这个问题,搜遍简中的blog都是一些错......
  • Installing golang-1.18 on openEuler
    一、Installinggolang-1.18onopenEulerhttps://golang.google.cn1下载mkdir/opt/software&&cd/opt/softwarewgethttps://golang.google.cn/dl/go1.18.linux......
  • Golang实现小型CMS内容管理功能(二):前端接入百度ueditor富文本编辑器
    当我们把接口都做好以后,我们需要去开发前端界面。添加文章功能里面,最重要的就是文章内容部分,需要配置上富文本编辑器,这样才能给我们的内容增加样式。 下载ueditor代码......
  • django-rest-framework(更新中)
    @目录(三十六)Web应用模式(三十七)API接口(三十八)Restful规范(三十九)drf安装和简单使用1、安装2、使用3、postman测试(四十)源码分析cbvAPIView源码分析补充:drf的Request类(三十六......
  • C++ 友元函数实现运算符重载、成员函数实现运算符重载
    1.友元函数实现运算符重载(复数的加减法)Complex.h:#pragmaonce#include<string>usingnamespacestd;classComplex{public:Complex();Complex(intr......
  • Google Chrome(谷歌浏览器)安装使用
    谷歌浏览器官网https://www.google.cn/chrome/ Chrome是由Google开发的一款简单便捷的网页浏览工具。谷歌浏览器(GoogleChrome)可以提帮助你快速、安全的搜索到自己需......
  • go redis v8 gin session
    今天使用到gin的模版功能,于是学习了一下登录session因为gin有自家开发好的sessionredis。所以在redis支持方面。已经有支持好的了但是看了一下golangredis方面,发现有......
  • 重构后台的django项目目录、配置开发环境、添加环境变量
    重构项目目录celery_task:logs:项目运行时/开发时日志目录包luffapi:项目同名文件夹apps:项目所有应用的集合文件夹libs:第三方类库的保存目录[第三方组件、模块]-包......
  • go 正则表达式
    funcmain(){ line:="2022/11/2519:32<DIR>目录" reg:=regexp.MustCompile(`([\d/]+)\s+(\d+:\d+)\s+(<DIR>)\s+(.*)`) ifreg==nil{ panic(......
  • Golang-单元测试
    单元测试针对使用传统方式测试代码块的不足:1)测试代码块需要在main函数中去调用,需要修改main函数,若项目正在运行,就可能去停止项目,不方便2)不利于管理,当需要测试多个函数或多个......