Java语法基础(二)运算符

一、运算符

1、算数运算符:+、-、*、/、%

1)双目运算符:二元运算符,参加运算的对象有两个(+、-、*、/、%)

2)单目运算符:一元运算符,参加运算的对象只有一个(+、-)

3)结合性:运算方向

注意1:整数的除法:只取商 ==》 5 / 2 = 2

注意2:取余运算符:% ==》 5 % 2 = 1

2、关系运算符(比较运算符):> >= == !=   运算结果是逻辑值(true/false)

10>5 ==》true

5<=2 ==》false

强调:==和=的区别:前者是等于,后者是赋值

3、逻辑运算符:&&  ||  !

1)&&(与),||(或):双目运算符

表达式1 && 表达式2:当"表达式1"和"表达式2"都为真时,结果为真

表达式1 || 表达式2:当"表达式1"和"表达式2"有一个为真时,结果为真

强调:&&和||运算的短路现象

A、&&运算的短路:当"表达式1"为假时,将不运算"表达式2"

int a =10,b = 2,k;

(a>12) &&( (k=b*2)>0)

B、||运算中的短路现象:当"表达式1"为真时,将不运算"表达式2"

2) !(非运算):取反,单目运算符,放在运算符对象的左边。真的反为假,假

的反为真

4、赋值运算符:=

变量名 = 表达式

注意:在“=”的左边不能使表达式和常量

a+b = 20,20 = a+b都是错的

5、条件运算符:? :   是Java中唯一一个三目运算符

表达式1 ? 表达式2:表达式3

运算效果是:首先运算"表达式1",若结果为真,则选择"表达式2"的值作为整个条件表达式的值;若结果为假,则选择"表达式3"的值作为整个条件表达式的值

flag = (a%2==0)?true:false;

6、位运算符:二进制位的运算符

十进制----二进制

十进制

27

26

25

24

23

22

21

20

15=8+4+2+1

0

0

0

0

1

1

1

1

位运算符:

(1)按位与(&):对应位都为1时,结果为1,否则为0.

15&10=00001111&00001010=00001010=10

(2)按位或(|): 对应位上有一位为1,结果为1,对应位都为0时结果为0.

15|10=00001111|00001010=00001111=15

(3)按位异或(^):对应位不同,结果为1,对应位相同,结果为0

15^10=00001111^00001010=00000101=5

(4)按位取反(~):单目运算符,0的反是1,1的反是0

~10=~00001010=11110101=-11

自己了解:原码、反码、补码

(5)左移运算符(<<):运算对象<<左移的位数

在左移的时候,右边移除的部分为高位,舍弃,右边补零

十进制

27

26

25

24

23

22

21

20

10=8+2

0

0

0

0

1

0

1

0

10左移1位:10*21

0

0

0

1

0

1

0

0

10左移2位:10*22

0

0

1

0

1

0

0

0

注:对于正整数和无符号数,左移n位就等于让运算的对象乘以2的n次方

(6)右移运算符(>>): 运算对象>>右移的位数

在右移时,右边(低位)移出的位舍弃,左边(高位)如果是正整数或无符号数,补零;如果是负整数,补1.

十进制

27

26

25

24

23

22

21

20

10=8+2

0

0

0

0

1

0

1

0

10左移1位:10*21

0

0

0

0

0

1

0

1

10左移2位:10*22

0

0

0

0

0

0

1

0

注:对于正整数和无符号数,左移n位就等于让运算的对象除以2的n次方(不能整除时,取商,不要余数)

二、标准输入(重点)

从键盘将数据输入到程序中

Scanner类:专门用来进行数据输入

Scanner input = new Scanner(System.in);  //创建一个输入对象input

int a;

System.out.println(“请输入一个整数”);  //提示输入语句,可以提高程序的可读性

a = input.nextInt();  //从键盘输入一个整数给变量a

……

input.close();  //创建一个输入对象,使用之后要将其关闭

三、运算符的优先级和结合性

1)优先级

(1)单目运算符的优先级最高

(2)java程序中,赋值运算符的优先级最低

四、自加、自减运算

1)++:自加运算法,运算对象自己给自己加1

int a=5, b=3;

a++;    //a=a+1

++a;    //a=a+1

(1)作为独立的一条语句,前缀和后缀的运算效果没有区别

(2)若在表达式中就有区别:

k=a++*b;  //k=15,a=6;先使用a的值,再给a+1

k=++a*b;  //k=18,a=6;先给a+1,再使用a的值

2)--:自减运算符,运算对象自己给自己减1

运算方式同++

五、复合赋值运算符:优先级、结合性与“=”相同

1)+=、-=、*=、/=、%=

a+=13;等价于a=a+13;

a-=13;等价于a=a-13;

……

2)&=、|=、^=……

Java03-Java语法基础(二)运算符的更多相关文章

  1. Ruby语法基础(二)

    Ruby语法基础(二) 继续ruby的学习,这次主要把目光放到运算符,条件判断,循环,方法,以及其他ruby特有的基本概念上 运算符 算术运算符:+,-,/,%,**,值的注意的是,ruby中一切皆为 ...

  2. Java语法基础(1)

    Java语法基础(1) 1.      Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...

  3. R语言语法基础二

    R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...

  4. Java语法基础(2)

    一.变量与常量 1.标识符与关键字 (1). 标识符 标识符可以简单的理解为一个名字,用来标识类名.变量名.方法名.数组名.文件名的有效字符序列.如图所示. Java语言规定标识符由任意顺序的字母.下 ...

  5. Java语法基础(二)----运算符

    一.运算符: 运算符包括下面几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正 ...

  6. 二:java语法基础:

    1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...

  7. java语法基础(二)

    流程控制语句 表达式语句 在表达式后面添加:就构成了表达式语句,简称“语句” 我们编写java代码,更多时候都是在书写表达式语句. int i;声明语句 i = 10;赋值语句 流程控制语句 流程控制 ...

  8. JavaSE 学习笔记之Java语法基础(二)

    1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...

  9. java语法基础(一)

    这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...

  10. java语法基础

    Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...

随机推荐

  1. 初识AutoMapper

    在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字段,二者会使类字段很多,而 ...

  2. jquery接触初级----jquery 选择器

    css 选择器主要有:元素选择器,ID选择器,类选择器,群组选择器,后代选择器,普通配符选择器等,通过css选择,我们可以很方便的给元素添加样式,使网页看起来更加好看 jquery 选择器也有相似的功 ...

  3. Lazarus的DBGrid中回车键的处理

    Lazarus的DBGrid中回车键默认行为是向下移动一个记录,如果想对这一事件做处理,请不要在onkeypress里处理,而在onkeydown事件里处理.

  4. linux 内核假死循环导致的问题

    [, comm: -IFileSender Tainted: G B ENX -- ZTE Grantley/S1008 [:[<ffffffff810fb2cb>] [<fffff ...

  5. Linux grep命令使用方法

    Linux系统中grep命令可以根据指定的字符串或者正则表达式对文件内容进行匹配查找.在Linux文件处理和SHELL编程中使用广泛. grep基本语法 用法: grep [选项] "字符串 ...

  6. 为什么虚拟DOM更优胜一筹

    注意: 虚拟DOM只是实现MVVM的一种方案,或者说是视图更新的一种策略.没有虚拟DOM比MVVM更好一说. 我们回顾传统MVC框架,如backbone,它是将某个模板编译成模板函数,需要更新时,是自 ...

  7. LeetCode OJ 49. Group Anagrams

    题目 Given an array of strings, group anagrams together. For example, given: ["eat", "t ...

  8. mac使用brew安装sshpass

    brew安装sshpass brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Form ...

  9. 最邻近算法(KNN)识别数字验证码

    应用场景   对于简单的数字型验证码的自动识别.前期已经完成的工作是通过切割将验证码图片切割成一个一个的单个数字的图片,并按照对应的数字表征类别进行分类(即哪些图片表示数字7,哪些表示8),将各种数字 ...

  10. Java学习04 (第一遍)

    封装.抽象.继承和多态.封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属 ...