zoukankan      html  css  js  c++  java
  • 第3章 运算符、表达式和语句

    算术运算符和算术表达式

    1.加减运算符

    运算符号分别为+和-,是双目运算符。加减运算的结合性是从左到右。加减运算的操作元是整型或浮点型数据,加减运算符的优先级是4级。

    2.乘、除和求余运算符

    运算符号为*、/、%,都是双目运算符。

    *、/、% 运算符的结合性是从左到右,乘、除和求余运算的操作元是整型或浮点型数据。*、/、%运算符的优先级是3级

    3.自增、自减运算符

    运算符号为++、--,都是单目运算符,运算符可以放在操作元之前,也可以放在操作元之后,但操作元必须是一个整型或浮点型变量(不能是常量或表达式),运算符的优先级是2级。运算符的作用是使变量的值增1或减1,如:

    • ++x,--x表示在使用x之前,先使x的值加/减1。
    • x++,x--表示在使用x之后,使x的值加/减1

    4.算术表达式

    用算术符号和操作元连接起来的符合Java语法规则的式子,称为算术表达式。如x+2*y-30+3*(y+5) -12+n+(--n)

    5.算术混合运算的精度

    Java将按运算符两边的操作元的最高精度保留结果的精度,例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。
    char型数据和整型数据运算结果的精度是int。例如:byte k=18; 'H'+k的结果是int型,char ch=(char)('H'+k);

    关系运算符和关系表达式

    关系运算符用来比较两个值的关系,关系运算符的运算结果是boolean型数据,当运算符对应的关系成立时,运算结果是true,否则是false

    1.大小关系运算符

    • 大小关系运算的符号分别是>、>=、<、<=,都是双目运算符,操作元是数值型的常量、变量或表达式。
    • 大小关系运算符的级别是6级。

    2.等与不等关系

    等与不等关系运算的符号分别是 "==""!=",都是双目运算符。运算符的级别是7级。

    3.关系表达式

    • 结果为数值型的变量或表达式可以通过关系运算符形成关系表达式
    • 例如:(x+y+z)>30+x

    逻辑运算符和逻辑表达式

    逻辑运算用来实现boolean型数据的逻辑“与”、“或”和“非”运算,运算结果是boolean型数据。

    1.逻辑“与”和逻辑“或”

    运算的符号是"&&"、"||",是双目运算符,操作元是boolean型的变量或求值结果是boolean型数据的表达式。"&&""||"的级别分别是11和12级,结合性是左到右

    • "&&"的运算法则是:当两个操作元的值都是true时,运算结果是true,否则是false
    • "||"的运算法则是:当两个操作元的值都是flase时,运算结果是false,否则是true

    短路逻辑运算符:逻辑运算符"&&""||"也称做短路逻辑运算符。

    • 进行op1&&op2运算时,如果op1的值是false,在运算时不再去计算op2的值,直接就得出op1&&op2的结果是false
    • 进行op1||op2运算时,当op1的值是true时,在运算时不再去计算op2的值,直接就得出op1||op2的结果是true

    2.逻辑“非”

    运算的符号是"!",是单目运算符,操作元在左面。当操作元的值是TURE时,运算结果是FALSE;反之为TURE"!"的运算级别是2级,结合性从右到左

    3.逻辑表达式

    结果为boolean型的变量或表达式可以通过逻辑运算符形成逻辑表达式。例如,24>18 && 4<0,x!=0 || y!=0

    赋值运算符合赋值表达式

    赋值运算符:=。赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式。

    x是一个整型变量,y是一个boolean型变量,x=120y=false都是正确的赋值表达式,赋值运算符的优先级较低,是14级,结合方向右到左 

    移位运算符

    位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。

    1.左移位运算符

    • 左移位运算的符号为<<,是双目运算符。对于byteshort型数据,a<<n的运算结果是int型精度
    • a<<n运算:每左移一个位,左边的高阶位上的0或1被移出丢弃,并用0填充右边的低位
    • 因此,a每左移一次,相当于将a乘以2。

    2.右移位运算符

    • 右移位运算的符号为">>",是双目运算符。对于byteshort型数据,a>>n的运算结果是int型精度
    • a>>n运算:每右移一个位,右边的低阶位被移出丢弃,并用0或1填充左边的高位,正数用0填充,负数时用1填充

    位运算符

    “按位与”运算符

    • "&"是双目运算符,对两个整型数据a、b按位进行运算,运算结果是一个整型数据c
    • 运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。
    • 如果b的精度高于a,那么结果c的精度和b相同。

    2.“按位或”运算符

    • "|"是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。
    • 运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则是1。
    • 如果b的精度高于a,那么结果c的精度和b相同。

    3.“按位非”运算符

    • "~"是单目运算符。对一个整型数据a按位进行运算,运算结果是一个整型数据c。
    • 运算法则是:如果a对应位是0,则c的该位是1,否则是0。 

    4.“按位异或”运算符

    • "^"是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。
    • 运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。

    位运算符在操作逻辑型数据时,与逻辑运算符&&、||、!不同的是位运算要计算完a和b之后再给出运算的结果。

    条件运算符

    • 条件运算符是一个3目运算符,需要连接3个操作元:
    • op1?op2:op3(要求第一个操作元op1的值必须是boolean型数据)
    • 运算法则是:当op1的值是true时,运算的结果是op2的值;当op1的值是false时,运算的结果是op3的值。

    instanceof运算符

    • boolean result=obj instanceof Class
    • 该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。
    • 当左面的对象是右面的类创建的对象时,该运算的结果是true,否则是false

    分支语句

    1.条件分支语句

    if-else语句

    • 由一个“if”、“else”和两个复合语句按一定格式构成。
    • 一条if-else语句的作用是根据不同的条件产生不同的操作,执行法则如下:
      • if后面()内的表达式的值必须是boolean型的。
      • 如果表达式的值为true,则执行紧跟着的复合语句;如果表达式的值为false,则执行else后面的复合语句。

    多条件if-else if-else语句

    2.switch语句


    • switch语句中表达式的值必须是整型或字符型;常量值1到常量值n必须也是整型或字符型。需要注意的是,在同一个switch语句中,case后的常量值必须互不相同。
    • switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,就执行该case里的若干个语句,直到碰到break语句为止
    • 若没有任何常量值与表达式的值相同,则执行default后面的若干个语句。其中default是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch语句就不会进行任何处理。

    循环语句

    1.while循环

    while语句由关键字while、括号中的一个求值为boolean型数据的表达式和一个复合语句组成,其中的复合语句称作循环体。

    while语句的执行规则是:

    1. 计算表达式的值,如果该值是true时,就进行2,否则进行3。
    2. 执行循环体,再进行1
    3. 结束while语句的执行

    2.do-while循环

    do{
       若干语句
    }while(表达式);

    do-while循环和while循环的区别:do-while的循环体至少被执行一次

    3.for循环

    for(表达式1;表达式2;表达式3)

    {  若干语句
    }

    由关键字for、3个表达式,以及一个复合语句组成,其中的“表达式2”必须是一个求值为boolean型数据的表达式,而复合语句称作循环体。

    1. 计算“表达式1”,完成必要的初始化工作
    2. 判断“表达式2”的值,若“表达式2”的值为true, 则进行3,否则进行4。
    3. 执行循环体,然后计算“表达式3”,以便改变循环条件,进行2。
    4. 结束for语句的执行。

    跳转语句

    • 在循环语句的循环体中使用跳转语句,用关键break;continue;加上分号构成的语句
    • 在一个循环中,比如循环50次的循环语句中,如果在某次循环体的执行中执行了break语句,那么整个循环语句就结束。
    • 如果在某次循环体的执行中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。
    越努力越幸运!
  • 相关阅读:
    python线程的几种创建方式
    python进程之间的通信——Queue
    python中进程的几种创建方式
    python中的生成器、迭代器、闭包、装饰器
    java中String和StringBuffer的区别
    python中的元类介绍
    宣传片制作技巧
    树莓派创建WiFi热点
    PCB布线要求
    jsoncpp linux平台编译和arm移植
  • 原文地址:https://www.cnblogs.com/Littlejiajia/p/13477170.html
Copyright © 2011-2022 走看看