CGBTN21111-DAY03总结复习

82 阅读4分钟

前缀式:符号在前,先改变变量本身的值,再使用,比如打印,计算…

后缀式:符号在后,先使用,再改变变量本身的值

  1. 比较运算符

!= == > < >= <= 比较的结果都是布尔类型的

  1. 逻辑运算符

&&:双与/短路与:逻辑与单与相同,全真才真,只不过增加了短路的效果

||:双或/短路或:逻辑与单或相同,全假才假,只不过增加了短路的效果

  1. 三目/三元运算符

格式:1 ?2 :3;1是表达式,若1真,取2,若1假取3

  1. 赋值运算符

= :是普通的赋值运算符,等号右边的值交给等号左边的变量来保存

复合赋值运算符:+= -= *= /=,主要是可以简写&类型的自动转换

sum += 30; 等效于 sum = sum+30;

2 流程控制

============================================================================

2.1 顺序结构


顺序结构从头到尾所有代码依次都会执行到

可以解决输入 输出 计算等问题,但是不可以先做判断,再选择性的执行代码

2.2 分支结构


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

注意事项:

  1. 变量a支持的类型byte short char int String

  2. 变量a的数据类型与case后value的数据类型必须一致

  3. 如果没有添加break,并且又有case被匹配到,会发生穿透的现象,包括deafult

  4. case的个数 是否加break 是否加default 完全根据自己的业务来决定

  5. 如果添加了default保底选项,又没有任何一个case被匹配到,就会执行default后的语句

  6. 一般我们习惯在每个case后加break【这个只是建议,具体还是根据业务来写】