1.运算符:数学运算符 + - * / % =
比较运算符 > ,< , >,= ,<,= , != ,==;
自增自减 ++, --
逻辑运算符 & ,| ,! , && , ||;
条件(三目)运算符 a>b?a:b
a.数学运算符:运算的封闭性(补码运算的封闭性),java运算的封闭性就是补码运算的封闭性
比如int类型的值运算最终的结果是int类型。
b. java中的运算规则
同种类型的参与运算(可能需要自动类型转换)
返回同种类型:
byte,short,char三种类型在java中是表象,在底层是按照int运算的 。
总结:
1.在 + - *运算中主要关注运算的类型,关注溢出的问题
2.除法运算是整除.
3.求余:
0对任何数求余数都是0.
对一个固定值求余,结果是周期函数
(n++%3)
负数的余数是负数
正数的余数是正数
c.自增自减
++ --
可以将当前的变量自我增加(减少)的运算符++
int a ;
前++ ++a;
后++ a++;
从++表达式本身来看:
前后++没有任何区别,
都是给当前的变量
自我增加1
从整个运算表达式来看:
a++:先将a的值作为这个a++表达式的值,然后将a增加1
++a:先将a的值加1,再作为++a表达式的值,参与运算
d. 逻辑表达式:
短路与&&
①&&②
当条件①为false的时候,
条件②不在执行,被短路掉
短路或||
①||②
当条件①为true的时候,
条件②不在执行,被短路掉
e.三目运算符:
逻辑表达式(true/false)?表达式1:表达式2
根据逻辑表达式的结果决定执行表达式1
还是表达式2
true:表达式1
false:表达式2
2.分支流程控制语句:
1.分支流程控制语句
a.if
1. if(条件){代码体}
通过判断条件的true/false,来决定是否执行{}. 如果为true,则执行,为false,不执行
2. if(条件){//条件为true}else{//条件为false}
通过判断条件的true/false,来决定执行哪个大括号中的代码.
如果为true,执行if后面的{}
如果为false,执行else后面的{}
3. if(条件){
}else if(条件){
}.....{
}else{
}
if必须要出现,else if可有0-n个,else可有0-1个。
通过判断每个分支的条件,如果条件为true. 则执行对应的{}
当有一个条件为true后,其他的分支不再判断.如果所有的条件判断都为false,则执行else
b.switch case
switch(整数表达式){
case 条件1:
//代码
break;
case 条件2:
case 条件3:
...........
case 条件n:
default:
}
switch(表达式),只能是整数(int,byte,char,short),不能是long或者其他类型;
case条件只能是整数(int,byte,short, char)常量(字面量),不能是变量及表达式;
case条件的内容可以为空,如果为空,继续执行下面的代码;
default表示如果没有满足case条件的其他 一切情况;
在每一个case分支中,需要写break关键字。如果不写,会出现穿透现象.
注: 穿透现象:下面所有的case分支不再进行判断直接执行.
2.循环控制
循环:重复去做某一些事情。
java中的循环:
while(条件表达式){ //循环体}
通过判断条件表达式的结果决定是否执行循环体.
true:执行循环体, false:退出循环
int a = 3 ;
while(a>0){
System.out.println(a);
a--;
}
一般来说,使用while循环的时候都是使用它的死循环。
while(true){
//跳出循环的判断
if(条件为true){
break;
}
}
do{//循环体}while(条件表达式),先执行循环体,后判断条件