前缀式:符号在前,先改变变量本身的值,再使用,比如打印,计算…
后缀式:符号在后,先使用,再改变变量本身的值
- 比较运算符
!= == > < >= <= 比较的结果都是布尔类型的
- 逻辑运算符
&&:双与/短路与:逻辑与单与相同,全真才真,只不过增加了短路的效果
||:双或/短路或:逻辑与单或相同,全假才假,只不过增加了短路的效果
- 三目/三元运算符
格式:1 ?2 :3;1是表达式,若1真,取2,若1假取3
- 赋值运算符
= :是普通的赋值运算符,等号右边的值交给等号左边的变量来保存
复合赋值运算符:+= -= *= /=,主要是可以简写&类型的自动转换
sum += 30; 等效于 sum = sum+30;
============================================================================
顺序结构从头到尾所有代码依次都会执行到
可以解决输入 输出 计算等问题,但是不可以先做判断,再选择性的执行代码
1 单分支结构
适合只有一个判断条件时使用,符合条件,执行大括号里的代码,不符合条件,大括号里的代码跳过
2 多分支结构
适合有两种情况时使用,符合条件,执行代码1,其他情况执行代码2
3 嵌套分支结构
适合有多个条件时使用,else-if的个数没有限制,else可加可不加
if(判断条件1) {
如果符合判断条件1,执行此处代码1,如果不符合,继续向下判断条件2
}else if(判断条件2) {
如果符合判断条件2,执行此处代码2,如果不符合,继续向下判断条件3
}else if(判断条件3) {
如果符合判断条件3,执行此处代码3,如果不符合,继续向下判断
}else {
如果以上条件都不满足,执行此处代码
}
package cn.tedu.review;
import java.util.Scanner;
/*本类用于练习嵌套分支结构/
//需求:接收用户输入的身高与体重,判断BMI指数
//BMI=体重(Kg)/身高*身高(m)
//过轻:低于18.5
//正常:18.5~22.9
//偏胖:23~24.9
//肥胖:25~29.9
//重度肥胖:高于30
public class TestIf2 {
public static void main(String[] args) {
//1.提示并接收用户的身高与体重数据
System.out.println("请输入您的身高数据(单位:m):");
double h = new Scanner(System.in).nextDouble();
System.out.println("请输入您的体重数据(单位:kg):");
double w = new Scanner(System.in).nextDouble();
//2.计算指数:BMI=体重(Kg)/身高*身高(m)
double bmi = w/(h*h);
//3.定义一个变量用来保存最终的结果
String r = "";//初始值是一个空的字符串""
//4.判断bmi指数
//过轻:低于18.5
//正常:18.5~22.9
//偏胖:23~24.9
//肥胖:25~29.9
//重度肥胖:高于30
if(bmi < 18.5) {
r = "过轻";
}else if(bmi <= 22.9) {
r = "正常";
}else if(bmi <= 24.9) {
r = "偏胖";
}else if(bmi <= 29.9) {
r = "肥胖";
}else if(bmi <= 40) {
r = "重度肥胖";
}else {
System.out.println("数据输入有误,请核对后再输入!");
return;/*遇到return,main()直接结束,后面的语句不执行/
}
//打印结果
System.out.println("您的BMI指数:"+bmi);
System.out.println("您的体重属于:"+r);
}
}
4 选择结构
switch(a){
case 1 : 操作1;break;【可选】
case 2 : 操作2;break;【可选】
case 3 : 操作3;break;【可选】
case 4 : 操作4;break;【可选】
default : 保底选项;【可选】
}
执行顺序:先拿着变量a的值,依次与每个case后的值做比较,如果相等,就执行当前case后的操作,若case后没有break,就绪继续执行下一个case后的操作,如果一直没有遇到break,就会发生穿透的现象,包括default
注意事项:
-
变量a支持的类型byte short char int String
-
变量a的数据类型与case后value的数据类型必须一致
-
如果没有添加break,并且又有case被匹配到,会发生穿透的现象,包括deafult
-
case的个数 是否加break 是否加default 完全根据自己的业务来决定
-
如果添加了default保底选项,又没有任何一个case被匹配到,就会执行default后的语句
-
一般我们习惯在每个case后加break【这个只是建议,具体还是根据业务来写】