一、运算符:运算的符号
1.算术运算符: +, -, *, /, %, ++, --
1)%: 取模/取余, 余数为0即为整除
2)++/--: 自增1/自减1,可在变量前也可在变量后
2.1)单独使用时,在前在后一样
2.2)被使用时,在前在后不一样
a++的值为a ------------------(a--的值为a)
++a的值为a+1 ----------------(--a的值为a-1)
int c = a++; //1)先记录的a++的值为5 2)a自增1变为6 3)将a++的值5赋值给c --底层运算过程
//--粗暴记法:a++的值为5, c为5
int d = ++b; //1)保存++b的值为6 2)b自增1变为6 3)将++b的值6赋值给d --底层运算过程
//--粗暴记法:++b的值为6, d为6
2.关系运算符(由一个条件控制的)
1)>(大于), <(小于),>=(大于或等于), <=(小于或等于),==(等于), !=(不等于)
2)关系运算的结果为boolean类型
关系成立则为true,关系不成立则为false
3.逻辑运算符(由多个条件控制的)
1)&&:短路与(并且),两边都为真则为真,若false则false
---当第一个条件为false时发生短路(后面的就不执行了)
||:短路或(或者),有真则为真,见true则true
---当第一个条件为true时发生短路(后面的就不执行了)
!:逻辑非(逻辑取反),非真则假,非假则真
2)逻辑运算是建立在关系运算的基础之上
逻辑运算的结果也是boolean型
4.赋值运算符
1)简单赋值运算符:=
2)扩展赋值运算符:+=,-=,*=,/=,%=
----扩展赋值自带强转功能
//小面试题:
short s = 5; //s = s + 10; //编译错误,计算时系统先转换int,需强转, s = (short) (s + 10);
s += 10; //相当于s = (short)(s + 10);
5.字符串连接运算符
1)+:
1.1)若两边为数字,则做加法运算
1.2)若两边出现了字符串,则做字符串连接
1.3)字符串具有同化作用,任何类型与字符串相连,都会变成字符串类型
6.条件/三目运算符
1)语法:
boolean ? 数1 : 数2
2)执行过程
整个表达式是有值的,它的值要么是?后的数1,要么是:后的数2
计算boolean的值:
若为true,则整个表达式的值为数1
若为false,则整个表达式的值为数2
PS:
一目(数目): ++,--,!
二目: +,-,*,/,%,>,<,>=,<=,==,!=,&&,||,=,+=,-=,*=,/=,%=
三目:三目运算符
二、分支结构:基于条件执行某语句
1.if结构:基于条件干一件事
1)语法:
if(boolean){ //在运算符中有boolean结果的有关系运算符和逻辑运算符
语句块
}
2)执行过程
判断boolean的值:
若为true,则执行语句块(整个if结束)
若为false,则if结束
2.if...else结构:基于条件干两件事
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程
判断boolean的值:
若为true,则执行语句块1(整个if...else结束)
若为false,则执行语句块2(整个if...else结束)
3)说明:
语句块1和语句块2必走其中之一
PS:案例:
1.偶数奇数的判断
2.满五百打八折,不满五百打九折
3.判断成绩是否合法
4.找出最大最小值
5.闰年的判断
补充:
1.&为不短路与,|为不短路或
2.任何复杂的程序逻辑都可以通过三种结构来实现:
顺序结构:从上往下逐行执行,每句必走
分支结构:有条件的执行某语句,并非每句必走
循环结构:(且听下回分解)
3.面试题:8种基本数据类型
//byte:字节型,用来存储整数的,占1个字节,范围是-128~127
//short:短整型,用来存储整数的,占2个字节,范围是-32768~32767
//int:最常用的整型,用来存储整数的,占4个字节,范围是-2^31~2^31-1
//long:长整型,用来存储较大的整数,占8个字节,范围是-2^63~2^63-1
//float:单精度浮点型,用来存储小数,占4个字节,不能表示精确的值
//double:双精度浮点型,最常用来存储小数的类型,占8个字节,不能表示精确的值
//boolean:布尔型,用来存储true或false,占1个字节
//char:字符型,采用Unicode字符集编码格式,只能存储1个字符,占2个字节