• Java 之常用运算符(3)


    什么是运算符:

    运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。

    Java 语言中常用的运算符可分为如下几种:

    Ø 算术运算符

    Ø 赋值运算符

    Ø 比较运算符 

    Ø 逻辑运算符

    Ø 条件运算符

    我们试着通过一个简单的例子来看一下运算符的使用吧!

    当计算两数之和时,需要使用加法运算符。在 Java 中,加法运算符使用“+”表示

    在编辑器中,第 5 行输入:

    int sum = a + b ;

    运行结果为: 两数之和为:36

    1 public class HelloWorld{
    2     public static void main(String[] args) {
    3         int a=12;
    4         int b=24;
    5         int sum = a+b;
    6         System.out.println("两数之和为:"+sum);
    7     }
    8 }

    Java中的算术运算符:

    算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。

    Java 中常用的算术运算符:

     其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴

    例1:

    1 int a = 5;
    2 int b = ++a;  // ++出现在左边  让a先执行自增,然后将值赋给变量b 
    3 System.out.println("a:"+a);
    4 System.out.println("b:"+b); 

    运行结果:

    例2:

    1 int a = 5;
    2 int b = a ++;  // ++出现在右边  将a的值赋给变量b,然后在执行自增 
    3 System.out.println("a:"+a);
    4 System.out.println("b:"+b); 

    运行结果:

    一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!

    PS:% 用来求余数,也称为”取模运算符“

    上个栗子看看:

     1 public class HelloWorld{
     2     public static void main(String[] args) {
     3         int age1=24;   // 给定四个人的年龄 
     4         int age2=18;
     5         int age3=36;
     6         int age4=27;
     7         int sum = age1+age2+age3+age4;   // 求取四个年龄的总和
     8         double avg = sum/4;              // 求取四个年龄的平均值
     9         int minus = age1-age2;           // 求取 age1 和 age2 的差值
    10         int newAge = -- age1;            // 求取 age1 自减后的年龄
    11         System.out.println("年龄总和:"+sum);
    12         System.out.println("平均年龄:"+avg);
    13         System.out.println("年龄差值:"+minus);
    14         System.out.println("自减后的年龄:"+newAge);
    15 
    16     }
    17 }

     运行结果如下:

    Java中的赋值运算符:

    赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。

    Java 支持的常用赋值运算符,如下表所示:

     

     

     

     

    Java中的比较运算符:

    比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。

    Java 中常用的比较运算符如下表所示:

    注意哦:

    1、  > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

    2、  == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

    上个栗子 look look:

     1 public class HelloWorld{
     2     public static void main(String[] args) {
     3         int a=16;
     4         double b=9.5;
     5         String str1="hello";
     6         String str2="imooc";
     7         System.out.println("a等于b:" + (a == b));
     8         System.out.println("a大于b:" + (a > b));
     9         System.out.println("a小于等于b:" + (a <= b));
    10         System.out.println("str1等于str2:" + (str1  == str2));
    11     }
    12 }

    运行结果如下:

     Java中的逻辑运算符:

    逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:

    我们可以从“投票选举”的角度理解逻辑运算符:

    1、 与:要求所有人都投票同意,才能通过某议题

    2、 或:只要求一个人投票同意就可以通过某议题

    3、 非:某人原本投票同意,通过非运算符,可以使其投票无效

    4、 异或:有且只能有一个人投票同意,才可以通过某议题

    当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。

    譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。

    同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!

     栗子如下:

    假设有 A 、 B 、 C 、 D 四个人投票,由他们决定投票是否通过,此时就到了逻辑运算符“大显身手”的时候了。

     1 public class HelloWorld {
     2     public static void main(String[] args) {
     3         boolean a = true; // a同意
     4         boolean b = false; // b反对
     5         boolean c = false; // c反对
     6         boolean d = true; // d同意
     7         System.out.println((a && b)+"未通过");
     8         System.out.println((a || b)+"通过");
     9         System.out.println((!a)+"未通过");
    10         System.out.println((c ^ b)+"通过");
    11     
    12     }
    13 }

    结果如下:

    Java中的条件运算符:

    条件运算符( ? : )也称为 “三元运算符”。

    语法形式:布尔表达式 ? 表达式1 :表达式2

    运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值

    例如:

    因为,表达式 8>5 的值为 true ,所以,返回: 8大于5

     

     

     

    Java中的运算符优先级:

    所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:

    级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2  得到的结果是 13 “先乘后加”嘛!

    PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:

    分析:小括号优先级最高,因此

    1、 执行 a + 18 ,结果为 30

    2、 执行( a + 18 ) % 4 取模,结果为 2

    3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24

    来个栗子练练手吧!   表达式( 11+ 3* 8 ) / 4 % 3 的结果是()

    答案:2
    
    解析:
    第一步:计算3*8,结果为24;第二步:计算11+3*8,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2
    先自己计算一遍哈
  • 相关阅读:
    SpringBoot 线程池配置 定时任务,异步任务
    ArcMap 5 同一地区,多图层不能一起显示
    ArcMap 4 完全卸载ArcGIS
    ArcMap 3 矢量数据下载(下载、应用需谨慎)
    ArcMap 2 数据矢量化
    MODIS系列之NDVI(MOD13Q1)九:单一土地类型NDVI及时序图(以耕地类型为例)
    ArcMap 1 矢量数据和栅格数据
    ArcMap 0 (ArcGIS10.2安装(完善版--能解决常见问题))
    MODIS系列之NDVI(MOD13Q1)八:土地利用数据(又称地表覆盖数据)下载
    MODIS系列之NDVI(MOD13Q1)七:时间序列S-G滤波之Python
  • 原文地址:https://www.cnblogs.com/yoke/p/6882657.html
Copyright © 2020-2023  润新知