Java SE part1 基础程序设计day03-04

第三章 选择语句

3.1 比较运算符

  • 大于 >
  • 大于等于 >=
  • 小于 <
  • 小于等于 <=
  • 等于 ==
  • 不等于 !=
    比较运算符结果是布尔值

3.2逻辑运算符

  • 单与 &
  • 双与 && 有假则假 同真则真
  • 或 |
  • 双或 || 有真则真 同假则假
  • 非 !
  • 异或 ^
    逻辑运算符主要计算布尔值之间的逻辑

3.3 if 语句

  • 单if

     ...A
       if(条件){
                        如果条件为真时,执行语句B
       }
       ...C
    

条件为真时: A->B->C
条件为假时: A->C

  • if-else分支

    ...A
      if(条件){
                  如果条件为真时,执行的语句B
       }else{
                  如果条件为假时,执行的语句C
       }
     ...D
    

条件为真时:A->B->D
条件为假时: A->C->D

  • 多if-else嵌套

      ...A
      if(条件2){
                     条件2为真...B1
                    }else{
                      条件2为假...B2
                    }
                   ...B3
       }else{
                   条件1为假...C
       }
     ...D
    

条件1为真且条件2为真: A->B->B1->B3->D
条件1为真且条件2为假: A->B->B2->B3->D
条件1为假 A->C->D

  • 多if-else分支

     ...A
      	if(条件1){ > < >= <= == !=
      	             	条件1为真...B
      	}else if(条件2){
      	            	条件2为真...C
      	}else if(条件3){
      		            条件3为真...D
      	}else{
      		            ... E
      	}
     ...F
    

条件1为真:A->B->F
条件1为假,条件2位真:A->C->F
条件1为假,条件2位假,条件3为真:A->D->F
三者都为假:A->E->F

  • 选择语句 switch
    switch(变量){
    case 选项1:
    如果变量=选项1执行的语句
    break;
    case 选项2:
    如果变量=选项2执行的语句
    break;

    default:
    如果选项n中没有适合变量的值,则执行
    break;
    }
    if与switch的区别:
     if可以对区间值进行比较 也可以对固定值进行比较
     switch只能对固定的一个值进行比较 推荐使用

  • 示例:计算身体质量指数
    在这里插入图片描述
    代码如下:

     public static void main(String[] args){
                 Scanner scanner=new Scanner(System.in);
                 //1.获取身高体重
                 System.out.print("Please enter your weight and hight:");
                 double weight=scanner.nextDouble;
                 double hight=scanner.nextDouble;
                 //2.BMI=体重/身高^2
                 double BMI=weight/hight/hight;
                 //3.将BMI进行判断,输出相应的说明
                 if(BMI>=30.0){
                                        System.out.println("过胖");
                 }else if(BMI>=25.0){
                                        System.out.println("超重");
                 }else if(BMI>=18.5){
                                        System.out.println("正常");
                 }else{
                                        System.out.println("偏瘦");
                }
           }
    }
    

3.4 switch语句

  • switch
  • 不带case的switch

3.5 条件表达式

  • 布尔表达式(条件表达式)(三目运算)
    数据类型 变量名=布尔表达式?常量值1:常量值2;

3.6 常见的错误和陷进

  • 忘记必要的括号
  • 在if行出现错误的分号
  • 对布尔值的冗余测试
  • 悬空else出现的歧义
  • 两个浮点数值的相等测试
  • 简化布尔变量赋值
  • 避免不同情形中的重复代码

本章小结

1、Boolean类型变量可以存储值true或false.
2、关系操作符(<,<=,==,!=,>,>=)产生一个布尔值.
3、选择语句用于可选择的动作路径的编程。选择语句有一下几种类型:单分支if语句、双分支if-else语句、嵌套if语句、多分支if-else语句、switch语句和条件表达式.
4、各种if语句都是基于布尔值表达式来控制决定的。根据表达式的值是true或false,这些语句选择两种可能路径的一种.
5、布尔操作符&&、||、!和^对布尔值和布尔变量进行计算.
6、当对p1&&p2求值时,Java先求p1的值,如果p1为ture,再对p2求值;如果p1为false,就不再对p2求值。当对p1||p2求值时,Java先求p1的值,如果p1为false,再对p2求值;如果p1为true,就不再对p2求值。因此,&&也称为条件与操作符或短路与操作符,而||也称为条件或操作符或短路或操作符.
7、switch语句根据char,byte,short,int或者String类型的switch表达式来进行控制决定.
8、在switch语句中,关键字break是可选的,但它通常用在每个分支的结尾,以中止执行switch语句的剩余部分。如果没有出现break语句,则执行接下来的case语句.
9、表达式中的操作符按照括号、操作符优先级以及操作符结合规则所切丁的次序进行求值.
10、括号用于强制求值的顺序以任何顺序进行.
11、具有更高级优先权的操作符更早地进行操作。对于同样优先级的操作符,它们的结合规则确定操作的顺序.
12、除开赋值操作符的所有二元操作符都是左结合的,赋值操作符是右结合的.

猜你喜欢

转载自blog.csdn.net/Cystal_ll/article/details/83002632