第3章运算符、表达式和语句 31运算符与表达式 32语句概述 33控制语句 34循环语句 35 break和 continue语句
第3章 运算符、表达式和语句 ◼ 3.1 运算符与表达式 ◼ 3.2 语句概述 ◼ 3.3 控制语句 ◼ 3.4 循环语句 ◼ 3.5 break和continue语句
31运算符与表达式 Java提供了丰富的运算符,如算术运算符 关系运算符符、逻辑运算符、位运算符等。本 节将介绍大部分运算符
3.1 运算符与表达式 ◼ Java 提供了丰富的运算符,如算术运算符、 关系运算符符、逻辑运算符、位运算符等。本 节将介绍大部分运算符
1.算术运算符与表达式 用算术符号和括号连接起来的符合java语法规则 的式子,称为算术表达式,如x+2*y-30+3y+5) 加减运算符:+,-,加减运算符的结合方向是从 左到右。,加减运算符的优先级是4级。 乘,除和求余运算符:*,/,%,运算符的结合 方向是从左到右乘除运算符的操作元是整型或 浮点型数据。*,/,%运算符的优先级是3级
1. 算术运算符与表达式 ◼ 用算术符号和括号连接起来的符合java语法规则 的式子,称为算术表达式,如x+2*y-30+3*(y+5)。 ◼ 加减运算符:+,-,加减运算符的结合方向是从 左到右。,加减运算符的优先级是4级。 ◼ 乘,除和求余运算符:* ,/,%,运算符的结合 方向是从左到右.乘除运算符的操作元是整型或 浮点型数据。* ,/,%运算符的优先级是3级
2.自增,自减运算符:++, 自增、自减运算符是单目运算符,可以放在操作元之 前,也可以放在操作元之后。操作元必须是一个整型 或浮点型变量。作用是使变量的值增1或减1 ++X(-×x)表示在使用x之前,先使x的值加(减)1。 X++(x-)表示在使用ⅹ之后,使x的值加(减)1。 如:X=5y=++X:yX=? X=5y=X++;y,X=? 例26
2.自增,自减运算符:++,-- ◼ 自增、自减运算符是单目运算符,可以放在操作元之 前,也可以放在操作元之后。操作元必须是一个整型 或浮点型变量。作用是使变量的值增1或减1. ◼ ++x(--x)表示在使用x之前,先使x的值加(减)1。 ◼ x++(x--)表示在使用x之后,使x的值加(减)1。 ◼ 如: x=5;y=++x; y,x=? ◼ x=5;y=x++; y,x=? ◼ 例2.6
3.算术混合运算的精度 精度从“底”到“高”排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如 5/2的结果是2,要想得到25,必须写成50/2或502。 char型数据和整型数据运算结果的精度是int。例如: byte X=7 那么 B'+X 的结果是inηt型,因此下列写法是不正确的, char ch=B'+X 应当写成 char ch=char)(B+×)
3.算术混合运算的精度 精度从“底”到“高”排列的顺序是: byte short int long float double Java将按运算符两边的操作元的最高精度保留结果的精度,例如: 5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。 char型数据和整型数据运算结果的精度是int。例如: byte x=7; 那么 ‘B’+x; 的结果是int型,因此下列写法是不正确的, char ch=’B’+x; 应当写成: char ch=(char)(’B’+x);
4.关系运算符与关系表达式 ■关系运算符:,8,(xy)>80。 例27
4.关系运算符与关系表达式 ◼ 关系运算符:,8,(x+y)>80。 ◼ 例2.7
5.逻辑运算符与逻辑表达式 逻辑运算符包括:&&,‖,!。其中&&、‖为双 目运算符,实现逻辑与、逻辑或;!为单目运 算符,实现逻辑非。逻辑运算符的操作元必须 是 boolean型数据,逻辑运算符可以用来连接 关系表达式。例如,2>88&9>2的结果为 False, 2>8|9>2的结果为tue。 &&,‖也称为短路逻辑运算符。 aX=1;(y=1)==0)8&((X=6)=6);X=? 例28
5.逻辑运算符与逻辑表达式 ◼ 逻辑运算符包括:&&,||,!。其中&&、||为双 目运算符,实现逻辑与、逻辑或;!为单目运 算符,实现逻辑非。逻辑运算符的操作元必须 是boolean型数据 ,逻辑运算符可以用来连接 关系表达式。例如,2>8&&9>2的结果为false, 2>8||9>2的结果为true。 ◼ &&,||也称为短路逻辑运算符。 ❑ x=1;((y=1)==0))&&((x=6)==6)); x=? ◼ 例2.8
6.赋值运算符与赋值表达式 赋值运算符:= 赋值运算符是双目运算符,左面的操作元必须 是变量,不能是常量或表达式。设x是一个整 型变量,y是一个 boolean型变量,x=20和y= true都是正确的赋值表达式,赋值运算符的优 先级较低,是14级,结合方向右到左。赋值表 达式的值就是“=”左面变量的值。注意不要将 赋值运算符“=”与等号运算符“==”混淆
6.赋值运算符与赋值表达式 ◼ 赋值运算符:=。 ◼ 赋值运算符是双目运算符,左面的操作元必须 是变量,不能是常量或表达式。设x是一个整 型变量,y是一个boolean型变量,x=20和y = true都是正确的赋值表达式,赋值运算符的优 先级较低,是14级,结合方向右到左。赋值表 达式的值就是“=”左面变量的值。注意不要将 赋值运算符“=”与等号运算符“==”混淆
7.位运算符 &”是双目运算符,对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位都是1, 则c的该位是1,否则是0 “{"是双目运算符。对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位都是0, 则c的该位是0,否则是1 ■“~”是单目运算符。对一个整型数据a按位进行运算,运算结果是 个整型数据c。运算法则是:如果a对应位都是0,则c的该位是1, 否则是1。 ^”是双目运算符。对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位相同, 则c的该位是0,否则是1 与短路逻辑运算符相反,位运算符要计算完操作数后再给出表达 式运算结果。如X=1;(y=1)=0)8(X=6)=6);=?
7.位运算符 ◼ “&”是双目运算符,对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位都是1, 则c的该位是1,否则是0。 ◼ “|”是双目运算符。对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位都是0, 则c的该位是0,否则是1。 ◼ “~”是单目运算符。对一个整型数据a按位进行运算,运算结果是 一个整型数据c。运算法则是:如果a对应位都是0,则c的该位是1, 否则是1。 ◼ “^”是双目运算符。对两个整型数据a,b按位进行运算,运算结果 是一个整型数据c。运算法则是:如果a,b两个数据对应位相同, 则c的该位是0,否则是1。 ◼ 与短路逻辑运算符相反,位运算符要计算完操作数后再给出表达 式运算结果。如:x=1;((y=1)==0)&((x=6)==6));x=?
移位运算符 口左移位运算符(>与>>>) 运算符(>)执行一个右移位(带符号),左边按符 号位补0或1。 运算符(>)同样是执行一个右移位,只是执行的 是不带符号的移位,即左边空位一律补0。 例29
◼ 移位运算符 ❑ 左移位运算符(>与>>>) 运算符(>>)执行一个右移位(带符号),左边按符 号位补0或1。 运算符(>>>)同样是执行一个右移位,只是执行的 是不带符号的移位,即左边空位一律补0。 ◼ 例2.9