zoukankan      html  css  js  c++  java
  • java运算符优先级与流程控制

    1. Java 的方法Method (函数 Function), 功能, 动作
     1) 方法就是函数: y=f(x)=3x+6;
     2) 方法的语法
       (修饰词)(返回值类型)(方法名)(参数列表){
           //方法体
       }
       public static void main(String[] args){}
       如:
      public static int f(int x){
        int y = 3 * x + 6;
        return y;
      }
     4) 如果有返回值定义就必须有return语句, 返回和返回值类型
         兼容的数据
     5) 方法的参数和方法内部的变量 都是局部变量,
        这些变量作用域只在方法内部!
     6) 实参: 方法调用时候实际传递的参数变量
        形参: 方法的参数定义,是临时变量.
     
    2. Java 运算符
     1) 算数运算符  + - * / %
         A. 运算的封闭性(补码运算的封闭性):
            1.同种类型参与运算(可能需要自动类型转换)
            2.返回同种类型(可能发生:上溢出和下溢出)
            3.byte, short, char 按照int运算
            如: int a = 1 + 'A';
         B. 整数的除法是整除, 除以2相当于移位运算(移动小数点)
         C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
         D. % 计算除法的余数
            1. 0 对其他数的 余数 是0
            2. n%3 是 周期函数, 函数值 [0,3)
            3. 负数的余数是负数(考试可能出现, 工作中很少用)
     

      2)关系运算(*****)
            ==   !=    >     >=    <     <=         
            a.关系运算符的结果是boolean值。
            b. ==    判断左右俩个操作数是否相等  


      3)自增(减)运算符(*****)
           i++       i--
          ++i        --i
           i++: 先将i的值赋值给i++,然后i在自增1.
           ++i:先让i自增1,然后将i的值赋值给++i;
           eg:  int i = 20;   int b = i++;        i = 21;   b  =20;
                 int i = 20 ;  int b = ++i;         i =21, b =21;


       4)逻辑运算符(*****)
              &&      ||    !          &      |         ^
              &&:短路逻辑与      俩个表达式都是true结果是true,否则是false;
              ||:短路逻辑或     俩个表达式只要有一个是true,结果是true,
              ! :逻辑非        !true= false      !false=true
              a.逻辑运算符的结果一定是boolean值,操作数是boolean表达式。
              b.经常使用短路的逻辑或和短路的逻辑与。

             短路的与,在发现第一个表达式是false了。第二个表达式不执行了。
             非短路的与,在发现第一个表达式是false了,第二个表达式还要执行。
             短路的或:在发现第一个表达式是true,第二个表达式不在执行。
             非短路的或:在发现第一个表达式是true,第二个表达式还要执行。
        
            &:非短路的与
            | :非短路的或    
            ^:逻辑异或:  俩个操作相同结果是false,俩个操作数不同结果是true.
       
       5)条件运算符(三目运算符号)(****)
            条件表达式?表达式1:表达式2;
            判断一个数能被另外一个数整除,取余看结果是否等于0。   
            判断一个数是否是奇数还是偶数,对2取余看结果是否等于0;
     
       6)赋值运算符(*****)
            =         +=    -=      *=     /=      %=
            int age = 23;
            age +=2;//等价于 age = age+2;
            age *= 2;//等价于 age= age*2;

        注意:
            =     赋值运算符。
            ==:  关系运算符  判断俩个数是否相等。

       7)移位运算符
             &:按位与
             | : 按位或
             ^: 按位异或
             ~:按位取反
             <<:有符号左移
             >>:有符号右移
             >>>: 无符号右移
         
             移位运算性能比较高。
             位运算是在二进制的基础上进行的。
             最后的结果是数。
     

       7)运算符的优先级和结合性:

        int i = 1+2+3+4;  从左向右
        int a = 23;    从右向左
        a.    = 的优先级最低,()的优先级最高。
        b.    如果想让优先级的运算符先运算,可以加()控制;
        c.    算术运算符 >  关系运算符 >逻辑运算符
        d.    在逻辑运算符中,     ! >  && >  ||
        e.    从右向左结合只有 赋值运算符,   三目运算符,单目运算符,其他运算符的结合性都是从左向右。


    3. 分支流程控制
     1) if ... else
       语法: if(布尔表达式){
              //语句块..
            }else{
              //语句块
            }
       嵌套: if(布尔表达式1){
              //...
            }else if(布尔表达式2){
              //...
            }else if(布尔表达式3){
              //...
            }else{
              //...
            }
            
       if(){
         if(){
           if(){
             //?
           }
         }
       }
       
       
     2) switch ... case
       语法: switch: 开关, case: 情况下
         switch(整数表达式){
           case 整数常量1:
             //语句序列
             break;
           case 整数常量2:
             //语句序列
             break;
           default:
             //语句序列
         }
      A. switch条件: 只能是整数(int byte char short)表达式
         switch 不能处理long 或其他类型
      B. case 只能是整数(int byte char short)常量, 不能使用
         变量及表达式. 如: '中'
      C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用
        经常都写break
     
    4. 循环控制
     1) While 循环控制
      语法:
      while(布尔表达式){
        //循环体 语句序列
      }

                                                                  若有不完善的地方请大家多提意见,转发时请注明出处!

  • 相关阅读:
    Vue官方脚手架分环境打包配置及接口环境切换
    JS超全判断终端
    H5与APP(安卓及IOS)交互方法
    json数据扁平化处理(适用于接口传参复杂数据加密处理)
    VUE实践经典记录(持续更新)
    Javascript 词法分析
    三栏自适应布局
    前端神器 Firebug 2.0 新特性一览
    事件绑定(终极版)
    正则表达式(下)
  • 原文地址:https://www.cnblogs.com/zmengj/p/4309579.html
Copyright © 2011-2022 走看看