Java程序设计 3 选择

布尔数据类型和逻辑运算符

        boolean类型的值为true和false,其字面值也只有true和false(也就是不能等同视为0和非零,这一点和C/C++有所不同),且不能和其他数据类型混合运算(包括类型转换)。

        Java里面的逻辑运算符分条件逻辑运算符非条件逻辑运算符:

  •         &&是条件逻辑运算符,和C/C++中一样,对于A&&B如果求得A已经为flase则不会再求B(即所谓短路);
  •         & 是非条件逻辑运算符,即使A求值结果为falseB还要求值。

                |、||同理。

条件语句

        if、else

        和C/C++大体相同,唯一区别是 if后面圆括号里必须是求值结果为boolean的表达式。加上前面提到了boolean不能和其他类型互转,因此就不能按C/C++的习惯像下面这样写:

        switch 

         和C/C++大体相同

  •         switch语句的判断条件expression的计算结果只能是byte, char, short, intenum等不大于int的类型
  •         value1-valueN必须与判断条件expression类型相同,不能用逗号分割且为常量表达式,不能是变量。
  •         每个case一个判断值,后面可以跟多条语句,这些语句可以不用大括号括起来。        
  •         程序将从第一个匹配的case子句处开始执行后面的所有代码(包括后面case子句中的代码)。可以使用break语句跳出switch语句。
  •         default语句是可选的。当所有case子句条件都不满足时执行。default不一定在最后, 匹配后执行后面的所有代码。

操作符的优先级和结合规则 

        也差不多

  • 括号优先级最高,如果括号有嵌套,内部括号优先执行。
  • 如果没有括号,则根据操作符的优先级和结合规则确定执行顺序。
  • 如果相邻的操作符有相同的优先级,则根据结合规则确定执行顺序。
  • 赋值运算符之外的二元运算符都是结合的。
  • 赋值运算符和 ? : 运算符是右结合的。

例如:

a+b-c+d  等价于 ((a+b)-c)+d

a=b+=c=5 等价于 a=(b+=(c=5))

操作符的优先级和结合规则只规定了操作符的执行顺序。操作数从左至右进行运算。

二元操作符左边的操作数比右边的操作数优先运算

例如

int a = 0;
int x = a + (++a);
//x的结果为1
int a = 0;
int x = (++a) + a;
//x的结果为2

 

上一篇:抖去推无人直播+矩阵托管+AI文案撰写一体化工具如何开发搭建


下一篇:用python的pandas读取excel文件中的数据