一、内容概述
1、Java运算符的使用
2、表达式的应用
二、Java的运算符
1、基础运算符
分割符:,,;,[],()
算术运算符: +,―,*,/,%,++,――
关系运算符: >,<,>=,<=,==,!=
布尔逻辑运算符: !,& , | , ^ , &&,||
位运算符: &,|,^,~ , >>,<<,>>>
赋值运算符: = 扩展赋值运算符:+=,―=,*=,/=
字符串连接运算符: +
造型操作符:()
两数相除,如果接收的值是整型,则会自动将小数点去掉。(0.5à0)
% :取模,余数
++ :自增,在原有值的基础上加1
-- : 自减,在原有值的基础上减1
逻辑运算符返回的都是boolean值(布尔数学体系的)
2、关系运算符
用==号来判断两个值是否相等
用!=来判断是否不等,
用>、<来判断大于、小于
用>=、<=来判断大于等于小于等于
3、逻辑运算符
!-- 逻辑非 & -- 逻辑与 | -- 逻辑或
^ -- 逻辑异或 && -- 短路与 || -- 短路或

4、短路逻辑运算符
&&: 第一个操作数为假时则不判断第二个操作数
||: 第一个操作数为真时则不判断第二个操作数
5、赋值运算符
赋值运算符“=”是最常用的一种运算符。它将等号右边的表达式的值赋给左边的变量。
当”=”两侧的数据类型不一致时,可以用默认类型转换或强制类型转换原则进行处理:
long l=100; int i=(int)l ;
特例:可以将整型常量直接赋值给byte、short、char等类型变量,而不用进行强制类型转换,只要不超出其表数范围。
byte b=12; //合法
byte b=129; //非法

5、字符串连接运算符
“+”除用于算术加法运算外,还可用于对字符串进行连接操作。
int i=300+5;
String s=“hello,”+”world!”;
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串后再进行连接。
int i=300+5;
String s=“hello,”+i+”号”;
System.out.println(s);//输出:hello,305号
6、位运算符
位运算符功能:
(1)~ -- 取反(2)& -- 按位与(3)| -- 按位或 (4)^ -- 按位异或
位运算符功能说明:

7、移位运算符
>>:右移运算符,将运算的二进制码整体左移指定位数,右移之后的空位使用符号位来补充,如果是正数用0填充,如果是负数使用1来填充
<<:左移运算符,将运算的二进制码整体左移指定位数,左移之后的空位使用0来补充
>>>:无符号右移位运算符
a>>>b将将二进制形式的a逐位右移b位, 空出的位补0
移位运算符性质
适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位
对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数
对于long型整数移位时a>>b ,则是先将移位位数b对64取模
三、表达式
表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分
所有的数学运算都认为是从左到右结合的,在Java中,大部分运算也是从左到右结合的,只有单目运算符、赋值运算符和条件运算符例外
乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作符可以互换位置而不会影响到结果
运算符优先级如图:


Java运算符、表达式案例
1、基础算术运算的案例
一、教学实验
除法和求余的案例:
public class Test {
/**
基础算数运算符
*/
public static void main(String[] args) {
//1、除法
int i=10;
int j=3;
System.out.println(i/j);
//求余
System.out.println(i%j);
}
}
二、练习实验
1、书写并运行下列程序。
public static void main(String[] args) {
//1、除法
int i=11;
int j=3;
System.out.println(i/j);
//求余
System.out.println(i%j);
System.out.println(8%2);
}
2、书写并运行下列程序。
public static void main(String[] args) {
int num = 9999;
int gewei = num % 10; // 分解获得个位数
int shiwei = num / 10 % 10; // 分解获得十位数
int baiwei = num / 100 % 10; // 分解获得百位数
int qianwei = num / 1000; // 分解获得千位数
System.out.println("数字: " + num);
System.out.println("千位数是: " + qianwei);
System.out.println("百位数是: " + baiwei);
System.out.println("十位数是: " + shiwei);
System.out.println("个位数是: " + gewei);
}
2、自增和自减的案例
一、教学案例
(1)程序片段1
public static void main(String[] args)
{
int i=0;
System.out.println(i++);
System.out.println(i++);
System.out.println(i++);
}
(2)程序片段2
public static void main(String[] args)
{
int i=0;
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
}
(3)程序片段3
public static void main(String[] args)
{
int i=0;
System.out.println(i--);
System.out.println(i--);
System.out.println(i--);
}
(4)程序片段4
public static void main(String[] args)
{
int i=0;
System.out.println(--i);
System.out.println(--i);
System.out.println(--i);
}
二、练习实验
1、上机书写并运行下列程序:
(1)程序片段1
public static void main(String[] args)
{
int i=0;
System.out.println(i++);
System.out.println(i++);
System.out.println(i++);
}
(2)程序片段2
public static void main(String[] args)
{
int i=0;
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
}
(3)程序片段3
public static void main(String[] args)
{
int i=0;
System.out.println(i--);
System.out.println(i--);
System.out.println(i--);
}
(4)程序片段4
public static void main(String[] args)
{
int i=0;
System.out.println(--i);
System.out.println(--i);
System.out.println(--i);
}
(5)程序片段5
public static void main(String[] args)
{
int i=0;
int sum=100 + (i++)+(++i)+(i--)+(--i);
System.out.println(sum);
}
2、拓展练习
(1)上机书写并运行下列程序:
public static void main(String[] args)
{
int i=0;
int sum=(i++)+(++i)+(i--)+(--i);
System.out.println(sum);
}
(2)上机有如下程序段:问输出的结果sum1为多少,sum2为到少?
public static void main(String[] args)
{
int i=0,sum1=0,sum2=0;
sum1=(i++)+(++i)+(--i)+(i--)+(i++)+(--i);
sum2=(++i)+(i++)+(i--)+(--i)+(++i)+(i--);
System.out.println(sum1);
System.out.println(sum2);
}
(3)上机书写并运行下列程序:
public static void main(String args[])
{
int i=8;
int j=11;
if( i++>8 || --i>8 || i++>8 || j-->11 || ++j>=11 || --i==9)
{
System.out.println("条件满足!");
System.out.println("i="+i);
System.out.println("j="+j);
}
}
(4)上机编程:
设int x=15,int y=27,int z=0;则z=x+++--y运算后,求:x=?,y=?,z=?
(5)上机编程:
设int x=3,int y=9,int z=0; 则表达式z=--x*y++-13运算后,x=?,y=?,z=?
3、赋值运算的案例
一、教学实验
1、赋值运算的例子:
public class Test {
/**
赋值运算
*/
public static void main(String[] args) {
//1、示例-1
int i = 0;
i = i + 1;
System.out.println("i = " + i);
//2、示例-2
short s = 10;
s += 1;

最低0.47元/天 解锁文章
891

被折叠的 条评论
为什么被折叠?



