zoukankan      html  css  js  c++  java
  • Java入门指南-03 操作符与表达式

    一、赋值操作符

    在 Java 语言里,等号称为赋值操作符。
    例:a = b + 100;
    注意,不要把 Java 语言理解为数学。在 Java 里,这个等号的作用是“赋值”,即右侧的值赋给左边的变量。

    要求:
    等号左边必须是变量
    将等号右边表达式的值,赋给左边的变量

    1、区分初始值与赋值

    在定义一个变量的时候,可以指定初始值。
    例如:int a = 10; // 定义一个变量 a,初始值为 10
    int b; // 如果未指定初始值,则初始值为 0

    2、理解赋值操作的过程

    赋值操作分 2 步运行:①先计算等号右侧的式子的值,②再把右侧的值赋给左侧的变量。
    例如:
    int a = 10;
    a = a + 99; // 重点理解这一行的赋值操作
    System.out.println("a 的值为 " + a );

    我们来分析一下 a = a + 99 这一行, 实际上计算机是分两步来运算出结果的:
    (1) 首先,计算出左侧表达式(a+99)的值,为 109
    (2) 然后,将右侧的值赋给左侧的变量,即 a=109

    3、组合赋值操作符

    赋值操作符可以和其他操作符组合起来使用,例如:
    a += b;
    a -= b;
    a *= b;
    a /= b;
    a %= b;
    规则都是一样的,相当于: a = a + b
    示例:
    int a = 10;
    a += 12; // 相当于 a = a + 12
    System.out.println("现在 a 为: " + a);
    所以,a 的最终值为 22

    二、常量

    在 Java 里,用 final 表示常量。类比一下:变量,是可以变化的量;常量,是不能变化的量。所以,以下代码会报错:
    final double PI = 3.14; // 定义常量 PI,初始值为 3.14
    PI = 3.0; // 错误! PI 是 final 修饰的,其值不能修改!

    三、自增操作符

    在 Java 语言里,++ 称为自增操作符。例:
    int a = 10;
    a++;
    System.out.println("现在 a 为: " + a);
    其中,a ++ 可以理解为 a = a +1 。所以,最终 a 的值为 11。

    1、前置自增与后置自增

    自增操作符有 2 种写法,写在前面的称为前置自增,写在后面叫后置
    自增。例如:后置自增:
    int b = 10;
    a = b++ ;

    后置自增时,先把 b 的值代入式子运算,之后再对 b 自增加 1。所以,
    最终的结果 a 为 10, b 为 11。

    前置自增:
    int b = 10;
    a = ++b ;
    前置自增时,先对 b 自增加 1,然后再代入式子运算。

    2、自减操作符

    同样的,还有一套自减操作符 -- ,例如:
    a = b --;
    和自增没区别,就不详细讲解。

    四、操作符的优先级

    当一个表达式里有多种操作符时,就是明确操作符的优先级。也就是说,哪些部分先运算,哪些部分后运算。比如:
    a - b * 10 / 2
    这个表达式看起来很简单。之所以我们会觉得简单,因为我们已经事先知道了算术符的优先级(小学就学过了嘛!)。但是,当把多种 Java 操作符用在一起时,就不那么简单的。比如:
    a>10 && !ok
    对于这样的式子,存在关系操作符 > 和逻辑操作符 && ! 。要经行运算,就必须明确优先级。在这里,关系操作符比逻辑操作符的优先
    级高,而逻辑非又与逻辑与的优先级高。所以,它的运算顺序是这样的:
    ( (a>10) && (!ok) )
    先运算 a>10 再运算 !ok ,再进行逻辑与的运算。在 Java 语言里,操作符约有几十种,想要记住它们的优先级顺序是不
    太容易的。但是大家可以放心的是,我们并不需要强记这些优先级,而只是需要知道几种常用的操作符的优先级就足够了。
    提示:在搞不清优先级顺序的时候,请使用小括号来显示指定顺序。

    五、类型转换操作符

    在整型与浮点型之间,允许类型转换。例如:
    double a = 12.77;
    int b = (int) a;
    System.out.println("b 的值:" + b);
    其中,
    a 是 double 型
    b 是 int 型
    b = a 赋值时,要求左右两侧的类型相同。所以,把 a 转换在 int型。也就是说,一个 double 类型可以转成 int 类型。把这对小括号称
    为类型转换操作符。反过来,一个 int 类型也可以转换成 double 类型。例如:
    int c = 10;
    double d = (double) c;

    1、类型转换时的数据损失

    在 double -> int 的转换过程中,数据可能发生损失。
    例如:double a = 12.77;int b = (int) a; 转换后的结果为 12,即小数部分被截断。
    反过来,在 int -> double 的转换过程中,数据不会损失。例如:
    int c = 10;
    double d = (double) c;

    2、显式转换与隐式转换

    在类型转换的过程中,如果没有风险和数据损失,就可以把类型转换符省略。例如:
    int c = 10;
    double d = c; // 省略 (double) 转换符
    在 d=c 的过程中,发生了隐式的类型转换,相当于double d = (double)c ;
    所以,称之为隐式转换。即自然而然的、没有任何风险的转换。

    3、注意事项

    (1) 小数转整数时,小数部分被截断。注意不是四舍五入!
    (2) 默认其他类型是不能转换的。
    例如,boolean 与 int 是不能相互转换的,boolean k = true;int a = (int) k; // 错!别乱写!

    六、结尾
    今天讲了算术运算符、关系运算符、逻辑运算符,还有一些讲了操作符、自增自减、操作符的优先级等。下一篇,我们来讲顺序结构、分支结构、循环结构。

    更多精彩,请关注公众号

  • 相关阅读:
    c语言输入一个字符串,统计其字母,数字和其他字符的个数,并以柱状图输出
    c语言中的#ifdef和#ifndef
    宏定义#define
    c语言中的register int
    android SDK 更新的几个网址
    android studio启动不进行fetching Android sdk compoment information
    android eclipse ADT 安装maven插件失败
    Jsp 的映射
    Jsp 九大隐式对象
    Jsp 乱码处理
  • 原文地址:https://www.cnblogs.com/zuiranlanyan/p/11476983.html
Copyright © 2011-2022 走看看