一、运算符
1,算术
+ - * /
% -- 取余
++ --
+= -=
加法:+
一般用于数字之间的运算
另外:用于字符串的拼接
任何类型的数据和字符串相加,结果都是字符串
除法:
注意结果的类型
java.lang.ArithmeticException: / by zero
++ -- :
复合运算符的位置
如果没有其他运算符参与,
在前和在后,效果一样
2,比较运算符
只要有比较运算符参与,结果都是boolean类型
< > <= >=
== !=
==:
一般用于基本类型来比较是否相等
不适合用于对象类型的比较相等:使用equals()方法
3,逻辑运算符
与或非:连接多个boolean值或者boolean表达式
按位运算:使用2进制数运算
& -- 与
| -- 或
情况:
1,两边都是数字
2,两边都是boolean类型
与:同1为1,其余都为0
或:同0为0,其余都为1
1:0000 0001
2:0000 0010
&:0000 0000 ---0
|: 0000 0011 --- 3
逻辑运算:两边只能是boolean值或者boolean表达式
&& -- 与
| |-- 或
与、或对boolean值操作的时候:
与:同真为真,其余都为假
或:同假为假,其余都为真
双与、或:短路运算
表达式1&&表达式2
如果表达式1返回false,表达式2不会执行运算
如果表达式1返回true,执行运算表达式2
表达式2返回true,整体返回true,反正,返回false
表达式1||表达式2
如果表达式1返回true,表达式2不会执行运算
如果表达式1返回false,执行运算表达式2
表达式2返回true,整体返回true,反正,返回false
4,异或
^:相同为0,不同为1
1:0000 0001
2:0000 0010
^:0000 0011 ---3
5,移位
<< 左移 数字*2^位数
>> 右移 数字-2^位数
3:0000 0011
<<2
0000 1100 -- 12
>>1
0000 0001 -- 1
二、流程控制
1,条件分支语句
单一分支语句
if else
if(条件)
条件:boolean值或者boolean表达式
1.if语句可以单独使用
if(条件) 语句
2.if else配对使用
if(条件) 语句1
else 语句2
条件返回true,执行语句1,
反之,执行语句2
注意:
1,一旦if else配对,if和else中的语句只会执行其中的一条
2,else语句不能单独使用,必须和if语句配对
else永远与离他最近的if配对
3,不管是if还是else能够影响的语句只有一条
如果想要管辖多条语句,必须使用{}括起来
以后不管有多少条语句,习惯上都会加上{}
3.if else if....
多路分支语句
switch(条件){
case 值:语句;
.....;
default:语句
}
条件:只能是byte、short、int、char、枚举
case:只是一个入口,往后的代码会依次执行
控制--中断
break; -- 跳出离他最近的一层代码块
三目运算
简化if else的赋值运算
变量 = 条件?值1:值2;
2,循环
1.for
for(初始化循环条件;循环的临界点;阶梯){
循环体
}
一般用于知道循环次数的情况
比如:用于数组、集合的遍历等等
for(;;) --- 死循环
控制:
break; -- 跳出离他最近的循环体
continue;--结束当前循环,直接开始下一次
2.while
while(boolean值/boolean表达式){
循环体
}
先判断条件,满足,执行循环体
一般用于不知道循环次数的情况
比如:文件的读取,结果集的遍历等等
控制程序功能菜单
补充:
包结构:JDK中的API也有包
常用包:
java.lang -- 基础包
使用该包下的API,不需要进行导包操作(直接使用)
除此以外,其他包中API的使用,都必须导包
导包:
import 包名.类名;
import java.util.Scanner;
导包语句,可以有多条
3.do while
do{
循环体
}while(boolean值/boolean表达式)
先执行循环体,再判断条件
保证循环体至少执行一次