Java03-Java语法基础(二)运算符
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语法基础(二)运算符的更多相关文章
- Ruby语法基础(二)
Ruby语法基础(二) 继续ruby的学习,这次主要把目光放到运算符,条件判断,循环,方法,以及其他ruby特有的基本概念上 运算符 算术运算符:+,-,/,%,**,值的注意的是,ruby中一切皆为 ...
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- Java语法基础(2)
一.变量与常量 1.标识符与关键字 (1). 标识符 标识符可以简单的理解为一个名字,用来标识类名.变量名.方法名.数组名.文件名的有效字符序列.如图所示. Java语言规定标识符由任意顺序的字母.下 ...
- Java语法基础(二)----运算符
一.运算符: 运算符包括下面几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正 ...
- 二:java语法基础:
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- java语法基础(二)
流程控制语句 表达式语句 在表达式后面添加:就构成了表达式语句,简称“语句” 我们编写java代码,更多时候都是在书写表达式语句. int i;声明语句 i = 10;赋值语句 流程控制语句 流程控制 ...
- JavaSE 学习笔记之Java语法基础(二)
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- java语法基础(一)
这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...
- java语法基础
Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...
随机推荐
- T-SQL行合并成列与列拆分成行
本文出处:http://www.cnblogs.com/wy123/p/6910468.html 感觉最近sql也没少写,突然有一点生疏了,对于用的不是太频繁的一些操作,时间一久就容易生. 多行的某一 ...
- wParam与lParam的区别
wParam与lParam的区别 lParam 和 wParam 是宏定义,一般在消息函数中带这两个类型的参数,通常用来存储窗口消息的参数. LRESULT CALLBACK WindowProc(H ...
- linux下arm汇编的常用指令解析
1. ldr 和 str : (1) ldr 作为指令,叫做寄存器加载指令.将内存中的值加载到寄存器中. (2) ldr 作为伪指令,实现一个32位常数或地址值加载到寄存器中.后面加载的常量或地址值标 ...
- maintenance
Maintenance Primitives Operator经常需要在包含Mesos集群的机器上执行维护任务. 大多数Mesos升级可以在不影响运行的任务的情况下完成,但是有些情况下维护可能会影响正 ...
- python遇到的错误
今天学习文件遇到这个错误. 这是在 text_files\vvvv.txt 之间加一个\ 就可以了,变成 text_files\\vvvv.txt,运行成功
- enum-枚举当做key-value业务使用
1.枚举当做key-value业务使用 package com.uwillbe.pad.enums; import java.util.ArrayList; import java.util.List ...
- Java中Properties集合总结
一:定义 表示一个持久的集,可以存在流中或者从流中加载.用来读取Java的配置文件,在Java中为.properties为后缀名的文本文件. 二:特点 是 Hashtable子类,map集合方法都可以 ...
- sql语句查询菜单结果成 树状图类型 注意适用于id是四位数
select * from ( select pid,id,name,url,concat(id,":") idOrder from menu where pid=0 and st ...
- kangle web配置phpmyadmin
1. kangle安装参考:https://www.kangleweb.com/thread-6001-1-1.html 2. 安装mysql-5.7.22:http://www.cnblogs.co ...
- struts2前后台传值的三种方法
原文地址: http://laokaddk.blog.51cto.com/368606/1340816 多的不说,直接上代码; struts.xml代码: <?xml version=" ...