(2-4-02)基础语法:运算符和表达式(2)

2.5.5  赋值运算符

Go语言中的赋值运算与其他计算机语言中的赋值运算一样,起到了一个赋值的作用。 在下表2-9中列出了Go语言支持的赋值运算符。

表2-9  赋值运算符

操作符

描述

例子

=

简单的赋值运算符,将右操作数的值赋给左侧操作数

C = A + B将把A + B得到的值赋给C

+ =

加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数

C + = A等价于C = C + A

- =

减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数

C - = A等价于C = C -A

* =

乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数

C * = A等价于C = C * A

/ =

除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数

C / = A等价于C = C / A

(%)=

取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数

C%= A等价于C = C%A

<< =

左移位赋值运算符

C << = 2等价于C = C << 2

>> =

右移位赋值运算符

C >> = 2等价于C = C >> 2

&=

按位与赋值运算符

C&= 2等价于C = C&2

^ =

按位异或赋值操作符

C ^ = 2等价于C = C ^ 2

| =

按位或赋值操作符

C | = 2等价于C = C | 2

例如下面的代码演示了使用赋值运算符的过程。

package main
import "fmt"
func main() {
	var a int = 21
	var c int
	c =  a
	fmt.Printf("第 1 行 - =  运算符实例,c 值为 = %d\n", c )
	c +=  a
	fmt.Printf("第 2 行 - += 运算符实例,c 值为 = %d\n", c )
	c -=  a
	fmt.Printf("第 3 行 - -= 运算符实例,c 值为 = %d\n", c )
	c *=  a
	fmt.Printf("第 4 行 - *= 运算符实例,c 值为 = %d\n", c )
	c /=  a
	fmt.Printf("第 5 行 - /= 运算符实例,c 值为 = %d\n", c )
	c  = 200;
	c <<=  2
	fmt.Printf("第 6行  - <<= 运算符实例,c 值为 = %d\n", c )
	c >>=  2
	fmt.Printf("第 7 行 - >>= 运算符实例,c 值为 = %d\n", c )
	c &=  2
	fmt.Printf("第 8 行 - &= 运算符实例,c 值为 = %d\n", c )
	c ^=  2
	fmt.Printf("第 9 行 - ^= 运算符实例,c 值为 = %d\n", c )
	c |=  2
	fmt.Printf("第 10 行 - |= 运算符实例,c 值为 = %d\n", c )
}

执行后会输出:

第 1 行 - =  运算符实例,c 值为 = 21
第 2 行 - += 运算符实例,c 值为 = 42
第 3 行 - -= 运算符实例,c 值为 = 21
第 4 行 - *= 运算符实例,c 值为 = 441
第 5 行 - /= 运算符实例,c 值为 = 21
第 6行  - <<= 运算符实例,c 值为 = 800
第 7 行 - >>= 运算符实例,c 值为 = 200
第 8 行 - &= 运算符实例,c 值为 = 0
第 9 行 - ^= 运算符实例,c 值为 = 2
第 10 行 - |= 运算符实例,c 值为 = 2

2.5.6  其他运算符

出了前面介绍的运算符外,在Go语言中还存在如表2-8所示的运算符。

表2-8 其他运算符

运算符

描述

实例

&

返回变量存储地址

&a; 将给出变量的实际地址。

*

指针变量。

*a; 是一个指针变量

上述两种运算符在指针应用中比较常见,有关指针的知识将在本书后面的章节中进行讲解。例如下面的代码演示上述两种运算符的用法。

package main
import "fmt"
func main() {
	var a int = 4
	var b int32
	var c float32
	var ptr *int
	/* 运算符实例 */
	fmt.Printf("第 1 行 - a 变量类型为 = %T\n", a );
	fmt.Printf("第 2 行 - b 变量类型为 = %T\n", b );
	fmt.Printf("第 3 行 - c 变量类型为 = %T\n", c );
	/*  & 和 * 运算符实例 */
	ptr = &a     /* 'ptr' 包含了 'a' 变量的地址 */
	fmt.Printf("a 的值为  %d\n", a);
	fmt.Printf("*ptr 为 %d\n", *ptr);
}

执行后会输出:

第 1 行 - a 变量类型为 = int
第 2 行 - b 变量类型为 = int32
第 3 行 - c 变量类型为 = float32
a 的值为  4
*ptr 为 4

2.5.7  运算符的优先级

运算符的优先级就是指运算符在表达式运算中的运算顺序,也就是先计算谁的问题,例如在四则运算中,先计算乘、除后计算加、减,乘除的运算符优先级高于加减运算符的优先级。在表2-10中列出了Go语言中所有运算符的优先级顺序,优先级的值越大,表示优先级越高。

表2-10  Go语言运算符优先级和结合性一览表

优先级

分类

运算符

结合性

1

逗号运算符

,

从左到右

2

赋值运算符

=、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、|=

从右到左

3

逻辑或

||

从左到右

4

逻辑与

&&

从左到右

5

按位或

|

从左到右

6

按位异或

^

从左到右

7

按位与

&

从左到右

8

相等/不等

==、!=

从左到右

9

关系运算符

<、<=、>、>=

从左到右

10

位移运算符

<<、>>

从左到右

11

加法/减法

+、-

从左到右

12

乘法/除法/取余

*(乘号)、/、%

从左到右

13

单目运算符

!、*(指针)、& 、++、--、+(正号)、-(负号)

从右到左

14

后缀运算符

( )、[ ]、->

从左到右

实例2-11:计算商品价格(源码路径:Go-codes\2\salary.go)

某商店T城(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条。小明在该店买了3件T恤和2条裤子,并且打8.8折。请计算并显示小明应该付多少钱?如上题中打完8.8折后出现小数,商店为了结算方便,只收用户整数部分的钱,如本应收用户303.6,现在只收用户303元,应该如何做?实例文件salary.go的代码如下所示:

package main
import "fmt"
func main() {
	var shirt int = 35
	var trousers int = 120
	totalMoney := shirt*3 + trousers*2
	realMoney := float64(totalMoney) * 0.88
	fmt.Printf("支付:%d", int(realMoney))
}

执行后会输出:

支付:303

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Java基础语法中,标识符是由程序员自己规定的代表一定含义的单词。标识符可以用于标识变量、方法、类等。主要注意的是,标识符不能修改,而且其中的main是一个特殊的标识符,无法自己规定。 在Java基础部分的相关知识讲解中,也包括了关于标识符的内容。 如果你想要判断一个字符串是否是合法的Java标识符,可以使用以下代码作为参考: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); while (reader.hasNext()) { int flag = 1; String str = reader.nextLine(); char ch; ch = str.charAt(0); int len = str.length(); if (Character.isJavaIdentifierStart(ch)) { for (int i = 1; i < len; i++) { ch = str.charAt(i); if (!Character.isJavaIdentifierPart(ch)) { flag = 0; break; } } } else { flag = 0; } if (flag == 0) System.out.printf("false\n"); else System.out.printf("true\n"); } reader.close(); } } ``` 这段代码可以读取用户输入的字符串,并判断其是否是合法的Java标识符。如果是合法的标识符,则输出true,否则输出false。 希望以上内容能够帮助到你。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【零基础学Java】Day-02 基础语法--标识符](https://blog.csdn.net/qq_52681453/article/details/126020455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java基础[02-Java基础语法1].ppt](https://download.csdn.net/download/xiaoyoupei/13206691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [2021级-JAVA02 基础语法1--标识符、常量与变量、数据类型、运算符表达式](https://blog.csdn.net/weixin_62455462/article/details/126696523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值