运算符特别说明|学习笔记

简介: 快速学习运算符特别说明。

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

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


运算符特别说明

 

基本内容

一、位运算符

二、运算符号的特别说明

 

一、 位运算符

1、 位运算具有单独的、两个数的相互运算,比如说按位与按位或按位异或按位取反左移动右移动无符号

2、 >>>”是“符号位”,它是不会变化的。

运算符

描述

实例

&

按位或运算符

(a I b)输出结果61,二进制解释: 0011 1101

按位或运算符

(a I b)输出结果61,二进制解释: 0011 1101

*

按位异或运算符

(a^ b)输出结果49,二进制解释: 0011 0001

~

按位取反运算符

(~a)输出结果-61,二进制解释: 11000011, 在一个有符号二进制数的补码形式。

<<

左移动运算符

a<< 2输出结果240,二进制解释: 1111 0000

>>

右移动运算符

a>> 2输出结果15,二进制解释: 00001111

>>>

无符号右移

A>>>2输出结果15,二进制解释:00001111

说明:位运算符的规则和 Java

 

二、 运算符号的特别说明

1、 Scala 不支持三目运算符,在 Scala 中使用 if- else 的方式实现。

(1) Scala 没有传统的写法,举例:

val num = 5 > 4 ? 5 : 4\\没有

(2) Scala 里面使用如下写法:

val num = if(5>4) else 4

(3) 注意事项:

首先需要新建一个包(notice), 新建一个以上案例(Demo01),

package com. atguigu. chapter03. notice

object Demo01 {

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

val num= if (5> 4) 5 else 4

//val num2= 5 > 4 ? 5 : 4 错误,这个语法不成立。

}

}

2、 课堂练习

(1) 问:案例1:求两个数的最大值

package com. atguigu. chapter03. notice

object Demo01 {

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

val num= if (5> 4) 5 else 4

//val num2= 5 > 4 ? 5 : 4 错误,这个语法不成立。

求两个数的最大值 首先定义两个数;

val n1 = 4

val n2 = 8

接着进行数字的判断;

val res = if  (n1 > n2) n1 else n2

如果 n1大于 n2,那么返回 n1,否则返回 n2

printl(“res=”+ res)

}

}

运行结果:

res = 8//结果正确

(2) 问:案例2: 求三个数的最大值

package com. atguigu. chapter03. notice

object Demo01 {

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

val num= if (5> 4) 5 else 4

//val num2= 5 > 4 ? 5 : 4 错误,这个语法不成立。

个数的最大值 首先定义两个数;

val n1 = 4

val n2 = 8

接着进行数字的判断;

val res = if  (n1 > n2) n1 else n2

如果 n1大于 n2,那么返回 n1,否则返回 n2

printl(“res=”+ res)

val n3 = 11

res = if ( res > n3 ) res else n3

// 如果上面的返回结果大于 n3,那么就返回上来的结果 ;否则的话返回 n3

printl(“res=”+ res)

}

}

返回结果:

res = 8

res = 11

3、 Scala 的设计理念:

种事情尽量只有一种方法完成,这样可以让代码风格更加统一

这个思想在这里讲解一下为什么马要把三目运算符去掉,他的设计思想是这样的尽量只有一种方法去完成,这样可以让代码风格更加统一。于是就把三目运算符去掉了,不但是马丁把这个三目运算掉了,像 Go 语言一些新兴的语言,也把三目运算掉了,因为程序员觉得三目运算符有点多余,因为 if - else 完全可以独自做到,所以就把三目运算符去掉了,所以以后要习惯不再使用三目运算符检查程序设计是否存在三目运算的用法

相关文章
|
6月前
|
Java
探索Java世界的奇妙工具——运算符与表达式运算符
探索Java世界的奇妙工具——运算符与表达式运算符
30 0
|
6月前
|
JavaScript 前端开发 Java
运算符优先级在不同编程语言中的差异
运算符优先级在不同编程语言中的差异
54 1
|
6月前
|
存储 人工智能 编译器
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
102 1
|
6月前
|
算法
运算符的妙用以及部分机理解析
运算符的妙用以及部分机理解析
64 0
|
存储 编译器 Linux
0基础C语言保姆教程——第六节 操作符、表达式和语句
加法或者减法都是双目操作符,就是必须要求有两个操作对象才能够用它,这也很好理解,加法、减法要两个数才能加减对吧。
131 0
0基础C语言保姆教程——第六节 操作符、表达式和语句
|
存储 人工智能 C语言
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
521 0
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
|
JavaScript 网络架构
扩展运算符的学习与应用
扩展运算符是ES6新增的一种运算符,他可以帮助我们简化代码,简化操作,所以在开发中是非常常用的,下面我将从学习与应用两个方面来带掘友学习扩展运算符。
125 0
|
人工智能 Java Go
算数运算符细节讨论|学习笔记
本节课来看算术运算符的细节。
|
Java 大数据
Java程序设计基础笔记 • 【第3章 运算符与表达式】
3.1 运算符(一) 3.1.1 赋值运算符 3.1.2 算数运算符 3.1.3 复合运算符 3.1.4 实践练习(一) 3.1.5 实践练习(二) 3.2 运算符(二) 3.2.1 关系运算符 3.2.2 逻辑运算符 3.2.3 三母运算符 3.2.4 实践练习 3.3 运算符优先级和表达式 3.3.1 表达式 3.3.2 运算符和优先级 3.3.3 实践练习 3.4 数据类型转换 3.4.1 自动类型转换 3.4.2 强制类型转换 3.4.3 实践练习(一) 3.4.4 实践练习(二) 总结:
214 0
Java程序设计基础笔记 • 【第3章 运算符与表达式】
|
JavaScript 前端开发
【重温基础】5.表达式和运算符
【重温基础】5.表达式和运算符
124 0