运算符与Scanner
算数运算符
+:加
-:减
*:乘
/:除
%:取余
++:递增
在原基础上+1;
总结:
++在后先参与运算,在自增
++在前先自增,在参与运算
细节:
++在后
1,存储原有数据
2,原值+1
3,赋值
4,使用存储的原数据进行运算
++在前
1,原值+1
2,赋值
3,参与运算
经验:
将++或--单独放在一行使用
--:递减
在原基础上-1
总结:
--在后先参与运算,在递减
字符串连接符
赋值运算符
关系运行符
--在前先递减,在参与运算
注意:
1,进行算数运算的结果的数据类型为参与运算的数据类型的最大类型
2,基本数据类型除布尔型都可参与运算,引用数据类型不能使用算数运算符
字符串连接符
+
如何区分字符串连接符与算数运算+法
看符号两边是否有字符串,如果有就是字符串连接符,如果没有就是算数运算符
如:
"hello"+"world"="helloworld";
"world"+"hello"="worldhello";
注意:
字符串与任何类型拼接结果都为字符串
赋值运算符
=:将等号右边的值赋值给等号左边的变量
+=:加等
-=:减等
*=:乘等
/=:除等
%=:余等
int a = 10;
int b = 2;
//a = a + b;
a += b;
自动转换
将小类型转换为大类型
double a = 10;
强制类型转换:
将大类型的值转换为小类型
语法:小类型 变量名 = (小类型)变量或值;
int i = 128;
byte b = (byte)i;
关系运算符
<:小于
>:大于
<=:小于等于
>=:大于等于
==:
基本数据类型判断值是否相同,相同为true,不同为false
引用数据类型判断地址是否相同,相同为true,不同为false
!=:
基本数据类型判断值是否不相同,相同为false,不同为true
引用数据类型判断地址是不否相同,相同为false,不同为true
在基本类型使用
逻辑运算符
&:与逻辑
意义:同真为真,有假为假
|:或逻辑
意义:有真为真,同假为假
^:逻辑异或
意义:相同为假,不同为真
!:非逻辑
意义:非真为假,非假为真
&&:短路与逻辑
判断左边表达式如果为假则不判断右边直接执行下面代码,如果左边为真则需要判断右边再执行代码
||:短路或逻辑
判断左边表达式如果为真则不判断右边直接执行下面代码,如果左边为假则需要判断右边再执行代码
三目运算符
又名:三元运算符
语法:
条件表达式?值1:值2;
执行逻辑:
如果条件表达式为true,取值1,反之
取值2
条件表达式:结果为boolean的称为条件表达式
练习:
两数之间获取最大值
int a = 10;
int b = 2;
将获取到的最大值赋值给变量
int max = a > b?a:b;
Scanner
简介:由JDK提供的一个类,是一种引用数据类型
作用:键盘录入
使用:
1,导包(开发工具会帮助我们自动导包)
2,创建Scanner
Scanner 变量名 = new Scanner(System.in);
3,等待用户输入
等待用户输入整数,变量名2记录的就是用户输入的整数
int 变量名2 = 变量名2.nextInt();
等待用户输入字符串,变量名2记录的就是用户输入的字符串
String 变量名2 = 变量名2.next();
让用户输入一个数到程序中,并将用户输入的内容打印到控制台上
位运算符里面的移位符号(扩展)
<<(左移)
将"<<"左边的数据向左移动指定的位数(补码进行移动),
将高位丢弃掉,空位补0
结论:将"<<"左边的数据乘以2的移动次幂
>>(右移):
将">>"左边的数据使用补码向右移动,如果最高符位是0,左边补0;
如果最高符号位是1,左边补1;
结论:将">>"左边的数据除以2的移动次幂
>>>(无符号右移):
将">>>"左边的数据使用补码向右移动,无论最高符号位是1
还是0,永远左边空位补0;