Java语言基础-4.运算符与表达式
2016-12-29 17:15
218 查看
运算符与表达式
1、数学运算:+ - * / % ++ –
注意事项:
A.+-*/两端的变量必须是同种类型,并返回同种类型 ;
B.%取余运算,负数的余数符号与被模数符号相同,-1%5=-1,1%-5=-1;Num%n, n>0, 结果范围[0,n), 是周期函数。
C.注意整除问题:1/2=0(整数的除法算式整除0.5=0) 1.0/2=0.5 1D/2=0.5
D.单独的前、后自增或自减是没区别的,有了赋值语句或返回值,则值不同。
eg1:自增自减
int a=1;
a=a++;
System.out.println(“a的值:”+a) ;
第一步:后++,先确定表达式a++的值(当前a的值)a++
- - ->1
第二步:++,给a加1 a
- - ->2
第三步:最后赋值运算,把a++整个表达式的值赋给a
- - ->1
a被赋值两次,第一次a=2,第二次把1赋值给1。
eg2:自增自减
x,y,z分别是5,6,7 计算z+=–y*z++;
//x=5,y=5,z=42
z=z+–y*z++;
- - ->42=7+5*7
从左到右入栈,入的是值
eg3:取出数字的每一位
d=num%10;//获取num的最后一位数
num/=10;//消除num的最后一位
2、位运算:& | ~(取反) ^(异或) >> << >>>
注意事项:
*一个数异或同一个数两次,结果还是那个数。
*|:上下对齐,有1个1则为1;&:上下对齐,有1个0则为0;(都为二进制)
*&相当于乘法,|相当于加法;&:有0则为0,|:有1则为1,^:两数相同为0,不同为1。
3、关系运算符:> < >= <= == !=
4、逻辑运算符:&& || ! & |
eg:短路运算:&&:前边为false,则后边不计算,||:前边为true则后边不计算。
int x=1,y=1,z=1;
if(x–==1&&y++==1||z++==1)
//||短路运算后面的不执行了。
System.out.println(“x=”+x+”,y=”+y+”,z=”+z);
//0,2,1
5、赋值运算符:= += -= *= /= %=
eg:正负1交替
int flag=-1;
System.out.println(flag*=-1);
6、条件运算符(三目运算)
表达式1?表达式2:表达式3
注意事项:
*右结合性:a>b?a:i>j?i:j相当于a>b?a:(i>j?i:j)
*三目运算符中:表达式2和表达式3中如果都为基本数据类型,整个表达式的运算结果由容量高的决定。如:int x=4; x>4?99.9:9 ;,99.9为double类型,9为int类型。double容量高,所以结果为9.0。
7、运算符优先级:括号>自增自减>~!>算术运算符>位移运算>关系运算>逻辑运算>条件运算>赋值运算
1、数学运算:+ - * / % ++ –
注意事项:
A.+-*/两端的变量必须是同种类型,并返回同种类型 ;
B.%取余运算,负数的余数符号与被模数符号相同,-1%5=-1,1%-5=-1;Num%n, n>0, 结果范围[0,n), 是周期函数。
C.注意整除问题:1/2=0(整数的除法算式整除0.5=0) 1.0/2=0.5 1D/2=0.5
D.单独的前、后自增或自减是没区别的,有了赋值语句或返回值,则值不同。
eg1:自增自减
int a=1;
a=a++;
System.out.println(“a的值:”+a) ;
第一步:后++,先确定表达式a++的值(当前a的值)a++
- - ->1
第二步:++,给a加1 a
- - ->2
第三步:最后赋值运算,把a++整个表达式的值赋给a
- - ->1
a被赋值两次,第一次a=2,第二次把1赋值给1。
eg2:自增自减
x,y,z分别是5,6,7 计算z+=–y*z++;
//x=5,y=5,z=42
z=z+–y*z++;
- - ->42=7+5*7
从左到右入栈,入的是值
eg3:取出数字的每一位
d=num%10;//获取num的最后一位数
num/=10;//消除num的最后一位
2、位运算:& | ~(取反) ^(异或) >> << >>>
注意事项:
*一个数异或同一个数两次,结果还是那个数。
*|:上下对齐,有1个1则为1;&:上下对齐,有1个0则为0;(都为二进制)
*&相当于乘法,|相当于加法;&:有0则为0,|:有1则为1,^:两数相同为0,不同为1。
3、关系运算符:> < >= <= == !=
4、逻辑运算符:&& || ! & |
eg:短路运算:&&:前边为false,则后边不计算,||:前边为true则后边不计算。
int x=1,y=1,z=1;
if(x–==1&&y++==1||z++==1)
//||短路运算后面的不执行了。
System.out.println(“x=”+x+”,y=”+y+”,z=”+z);
//0,2,1
5、赋值运算符:= += -= *= /= %=
eg:正负1交替
int flag=-1;
System.out.println(flag*=-1);
6、条件运算符(三目运算)
表达式1?表达式2:表达式3
注意事项:
*右结合性:a>b?a:i>j?i:j相当于a>b?a:(i>j?i:j)
*三目运算符中:表达式2和表达式3中如果都为基本数据类型,整个表达式的运算结果由容量高的决定。如:int x=4; x>4?99.9:9 ;,99.9为double类型,9为int类型。double容量高,所以结果为9.0。
7、运算符优先级:括号>自增自减>~!>算术运算符>位移运算>关系运算>逻辑运算>条件运算>赋值运算
相关文章推荐
- java语言基础【java运算符和表达式】
- 磨刀不误砍材工 - Java的基础语言要素(运算符和表达式的应用)
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- 2. JavaSE-Java语言基础及运算符
- 黑马程序员_Java语言基础_运算符,流程
- Java语言基础18-多功能运算符
- Java语言基础(二)——数据类型、运算符和流程控制语句
- 使用java语言基础部分知识,做一个简易的2个数之间的关于算术运算符的计算。
- 七:Java语言基础组成——运算符之逻辑运算符
- java基础知识-----运算符表达式和分支结构
- Java语言基础(算术运算符_2&赋值运算符)(s+=4与s=s+4的区别)
- Java语言基础算术运算符++和 --的用法
- iOS开发环境C语言基础 运算符和表达式
- 黑马程序员_JAVA语言基础 标识符、变量、运算符
- Java语言基础——运算符
- 黑马程序员-C语言基础知识-运算符与表达式
- java语言基础(60)——java正则表达式基础使用
- Java语言常用的运算符和表达式详解
- 黑马程序员——java语言基础常量、变量、运算符
- Java语言基础组成(运算符,关键字,语句if,whle,for)