1 运算符
- 普通的四则运算符 + - * / ,不能改变变量本身的值,除非将表达式的结果重新赋值给变量,才会改变变量本身的值
- public static void main(String[] args) {
int a = 2;
System.out.println(a+2);//4
System.out.println(a);//2
a = a+3;
System.out.println(a);//5
}
取余/求模 %
7%3余数为1 4%2余数为0【余数为0表示整除】
自增自减运算符
自增:++ ,表示给变量的值+1
自减:-- ,表示给变量的值-1
前缀式:++a --a ,符号在前,先改变变量本身的值+1/-1,再使用(比如打印)
后缀式:a++,a–,符号在后,先使用,再改变变量本身的值+1/-1
注意:前面的代码会对后面的代码产生影响,所以算变量值的要注意
注意:不管是前缀式还是后缀式,都会改变变量的值,区别在于时机不同
比较运算符:> < >= <= ==【左右两边的值是否相等】 !=【左右两边的值是否不相等】
注意:比较运算符的结果都是布尔类型的
逻辑运算符
& 单与/and : 全真才真,有假则假
&& 双与/短路与:判断逻辑与单与相同,只不过增加了一个短路的效果
即:如果左边已经判断为false,右边就无需继续判断
| 单或/or : 全假才假,有真则真
|| 双或/短路或:判断逻辑与单或相同,只不过增加了一个短路的效果
即:如果左边已经判断为true,右边就无需继续判断
三目运算符
格式:1 ? 2 : 3; 1号位置是一个表达式,如果1真取2号位置的值,1假取3号位置的值
赋值运算符
= 是普通的赋值运算符,等号右边的值交给等号左边来保存
+= -= *= /= 这几种是复合赋值运算符,是一种简便写法,比如a+=30;相当于 a = a+30;
2 流程控制
顺序结构:
程序执行先找到入口函数main(),然后再一行一行顺序往下执行,并且所有的代码都会被执行到
顺序结构可以帮助我们进行计算、输出等操作,但是不能选择性的执行代码
分支结构:
分支结构可以帮助我们先做判断,根据判断的结果,选择性的执行代码
单分支结构
if(判断条件){
符合判断条件后要执行的代码,如果不符合条件,此句代码会被跳过
}
多分支结构
public static void main(String[] args) {
char gender = '男';
if(gender == '男'){//判断条件
System.out.println("男生可以玩滑板");//如果符合判断条件就执行此处代码1
}else{
System.out.println("女生可以化妆");//如果不符合判断条件,就执行此处代码2
}
}
嵌套分支结构
if(判断条件1){
满足判断条件1,执行代码1
}else if(判断条件2) {
满足判断条件2,执行代码2
}else if(判断条件 3){
满足判断条件3,执行代码3
}else{
以上条件都不满足,执行代码4
}
选择结构:
public static void main(String[] args) {
int a = 9;
switch(a) {
//Ctrl+Alt+向下 快速向下复制代码
case 1 : System.out.println(1); break;
case 2 : System.out.println(2); break;
case 3 : System.out.println(3); break;
case 4 : System.out.println(4); break;
case 5 : System.out.println(5); break;
default : System.out.println(0);
}
}
注意事项:
变量a支持的类型byte short char int String
变量a的数据类型与case后value的数据类型必须一致
如果没有添加break,并且又有case被匹配到,会发生穿透的现象,包括deafult
case的个数 是否加break 是否加default 完全根据自己的业务来决定
如果添加了default保底选项,又没有任何一个case被匹配到,就会执行default后的语句
一般我们习惯在每个case后加break【这个只是建议,具体还是根据业务来写】
循环结构:
当你想多次重复干某件事的时候,可以使用循环结构
注意事项:开始条件只会在第一轮执行一次,剩下两个条件才会执行多次