赋值运算符|学习笔记

简介: 快速学习赋值运算符。

开发者学堂课程【Scala 核心编程-基础赋值运算符】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8905


赋值运算符

 

基本内容

一、 介绍

二、 赋值运算符的分类

三、 案例演示

四、 面试题

 

一、介绍

赋值运算符就是将某介运算后的值,赋给指定的变量。

 

二、赋值运算符的分类

1、分类

赋值运算符跟 Java 几乎是一样的

有“+=”“-=”“*=”“/+”“%=”等等。

运算符

描述

实例

=

简单的赋值运算符,将一个表达式的值赋给一个左值

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=C%A

2、续表

(1) 细节赋值运算符包含的左移、右移、按位与后赋值按位异或后赋值按位或后赋值

些内容在面试的时候有可能会问到,它的逻辑的规则跟 Java 是一样的如果这些内容没有理解的话,一定要去仔细的研读。因为做大数据的时候,有些时候为了增快速度,程序员喜欢用位移的方式或者移位的方式来进行处理,如果这个规则没有明白就很难运用到之后的程序设计中。尤其要注意对一个复数进行移动过后结果怎么推导出来的,一定要去看原码反码补码的关系不然,这个内容很难理解透彻。

运算符

描述

实例

<<=

左移后赋值

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

按位或后赋值

C|=2 等于c=C|2

说明:这部分的赋值运算涉及到二进制相关知识,其运行的规则和 Java 样。

 (2) 举例1:

比如说:赋值的单词是 assignment,一般简写为 assignoper。

package com. atguigu. chapter03. assignoper

object Demo01 {

def main (args: Array[String]): Unit = {

var num=2   //先将程序初始化;

numくく= 2//向左移动

println("num=" + num)

}

}

运行结果:num = 8

问:为什么结果等于8?

答:相当于给 var num=2连续乘了两个2,整体向左边移动,移动一位乘2,这个速度理论上来说是最快的。

(3) 举例2:

package com. atguigu. chapter03. assignoper

object Demo01 {

def main (args: Array[String]): Unit = {

var num=2   //先将程序初始化;

numくく= 2//向左移动2位,num = 8

num > > = 1//向右移动1位,num = 4

println("num=" + num)

}

}

运行结果:num = 4

注意:如果面试官进行提问的话,一般不会问这种。因为这些程序设计比较简单面试官可能会主要考察求职者的基本功,面试官提问为什么这样做?尤其是在面试官提问的时候往往不会用正数,他可能会提问数字负二负三,问求职者结果是什么如果不上来,面试官会觉得本功比较差。

 

三、案例演示

1、交换两个数的值。经典的赋值运算的值。

var a= 10

var b= 99

printIn("a="+a+"tb="+b)

//交换

val t=a

a= b

b= t

printn("a="+a+"tb="+b)

2、赋值运算符特点

(1) 运算顺序从右往左,一般来说是从左向右,但是赋值是从右向左。

(2) 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值/字面量 。也有可能是函数,

1举例1:

package com. atguigu. chapter03. assignoper

object Demo01 {

def main (args: Array[String]): Unit = {

var num=2   //先将程序初始化;

numくく= 2//向左移动2位,num = 8

num > > = 1//向右移动1位,num = 4

println("num=" + num)

//在 scala 中支持代码块,返回值

val res = {

if  (num >1) “Hello , ok”else 100

//如果 num 大于1,那么就返回 Hello , ok;如果不大于1,那么就返回100

// 语句的进一步扩展, 返回的可以根据不同的需求返回不同的类型。

}

prinln("res=" + res),

}

}

2举例2:

package com. atguigu. chapter03. assignoper

object Demo01 {

def main (args: Array[String]): Unit = {

var num=2   //先将程序初始化;

numくく= 2//向左移动2位,num = 8

num > > = 1//向右移动1位,num = 4

println("num=" + num)

//在scala中支持代码块,返回值

val res = {

90

}

}

打印出来可以看到,返回值为90

(3) 复合赋值运算符等价于下面的效果比如: a+=3 等价于 a=a+3。这个和 Java 运算是一样的。

 

四、面试题

1、题目:

有两个变量,a 和 b,要求将其进行交换,但是不允许使用中间变量,最终打印结果。

2、代码举例:

var a = 10

var b = 20

a = a + b

b = a – b

//=>(a+b)-b = a//相当于把a给b

a = a – b

//=>(a+b)-a = b//相当于把b给a

3、其他解题方法

可以使用“位运算”来实现题目的解答。 

相关文章
|
24天前
|
C语言
基本的算术运算符
基本的算术运算符
13 1
|
1月前
|
C++
在C++语言中赋值运算符
在C++语言中赋值运算符
9 0
|
1月前
|
C++
c++赋值运算符
c++赋值运算符
15 0
|
1月前
|
编译器 C++
c++算术运算符
c++算术运算符
14 0
|
2月前
|
C语言
赋值运算符
赋值运算符。
49 1
|
2月前
|
C语言
算术运算符
算术运算符。
19 7
|
4月前
|
JavaScript
TypeScript 中常用的运算符:算术运算符、赋值运算符、逻辑运算符、比较运算符和位运算符
TypeScript 中常用的运算符:算术运算符、赋值运算符、逻辑运算符、比较运算符和位运算符
58 1
|
开发者 Python
赋值运算符的特殊场景| 学习笔记
快速学习赋值运算符的特殊场景
58 0
|
开发者 Python
赋值运算符的使用| 学习笔记
快速学习赋值运算符的使用
108 0
|
PHP 开发者
运算符介绍| 学习笔记
快速学习运算符介绍。
72 0