2018-8-16day_02 运算符
新建 模板 小书匠
运算符
算符分为哪些?
算术运算符: 基本的算术运算符:+,-,*
/,%(取余数)
赋值运算符
比较运算符
逻辑运算符
三元运算符:三目运算符
了解
位运算符:^ 位异或
键盘录入
算术运算符(扩展的算术运算符++,--),赋值(扩展的赋值运算符: +=,*=
… :扩展的运算符里面隐藏了强制类型转换),比较,逻辑,位运算符(位异或 ^的特点),三元运算符(表达式? true的结果:false的结果)
`键盘录入,使用程序更加灵活,可以不将数据定义死,优化的程序;
键盘录入通过Java提供的一个类:
Scanner:文本扫描器。
使用键盘录入,开发步骤
固定格式
1)创建键盘录入对象 scanner就是Scanner类的对象名
Scanner scanner = new Scanner(System.in) ;
2)立马回报错,然后导入包(只要不是java.lang.包下的,都需要导包)
位置书写在package和class类 中间
3)使用对象名调用Scanner里面的方法
int number = scanner.nextInt() ;
4)输出number的值`
赋值运算符
基本的赋值运算符: =
int a = 10 ; 将10赋值int类型的变量a
扩展的赋值运算符:+=,-=,*=
,/=,%= (将等号左边的值和等号右边的相加/相减..的结果赋值等号左边的变量)
int a = 20 ;
a += 10 ;
相当于: a = a +10;
扩展的算术运算符:
8行
++/--
如果++/--单独使用:
结论:无论++/--在数据的前面还是数据的后面,都是自增1或者自减1;
如果++/--参与运算的使用:
1)如果++/--数据之前来参与运算:先自增1或者自减1,然后在运算(赋值)
2)如果++//在数据之后参与运算:先运算(赋值),然后在参与运算!
比较运算符:
3行
==,!=,>,<,>=,<=
这些运算符连接的表达式不管是简单还是复杂的,最终都boolean类型
逻辑运算符:
基本的逻辑运算符
-
2行
逻辑单与&
-
2行
逻辑单或|
-
2行
逻辑异或^
-
2行
逻辑非
逻辑双与&& ,逻辑单与& ,逻辑双或||,逻辑单或|
关于这四种的区别:
- 共同点:都是符合基本的规则: 逻辑双与&& ,逻辑单与& 有false,则false; 逻辑双或||,逻辑单或|,有true 则true
- 不同点:逻辑双与和逻辑双或:具有短路效果
&& :连接左边的表达式如果为false,右边不执行!
||:连接左边的表达式如果为true,有边不执行!
实际开发中,过多使用逻辑双或||或者逻辑双与&&
`面试题:
逻辑双与&&和逻辑单与&的区别?
6行
共同特点:都是表示一种并列关系,有false则false
逻辑双与&&特点:
左边的表达式如果是false,那么右边不执行,具有短路效果!
逻辑双或||:左边表达式是true,那么右边不执行,具有短路效果!
`
位运算符
位异或
^ 连接两个数值
位异或特点:
一个数据被另一个数据位异或两次,值是它本身...
流程控制语句:
顺序结构语句
2行
jvm将main 方法识别之后,它就会由上而下依次解析代码
选择结构语句
2行
if语句 三个格式:
格式1):
3行
if(表达式){
语句;
}
应用场景:针对的单个条件的判断
格式2: 实际开发中:格式2用的多
3行
if(表达式){
语句1;
}else{
语句2;
}
应用场景:针对两个条件进行判断的
格式3:测试的时候:测试错误数据,正确数据,边界数据
3行
if (表达式1){
语句1;
}else if(表达式2){
语句2;
……
}else{
语句;
}
switch语句(考点)
switch(表达式){
case 选项1:
语句1;
break ;
…
default:
语句n+1;
break;
}
switch后面的表达式可以是什么样的数据类型?
本身能使用的类型:byte,short,char ,int
JDK5以后可以跟枚举类型 (enum)
JDK7以后可以跟String类型(字符串类型)
`注意事项:
- case语句后面只能常量,不能跟变量
- break语句表达式中断,break不要省略,防止会出现”case穿透的一种现象”
- default语句它可以在switch语句中的任何位置,如果他在末尾,break可以省略(建议不省略),如果这个语句在中间,break不要省略;
- switch语句的结束条件
a):遇见break语句结束
b):程序默认执行到末尾`
}