博学谷——让IT教学更简单,让IT学习更有效 5、~:按位取反
00000011 ~:11111100 原码:1 1111100 反码:1 0000011 补码:1 0000100 所以:~3=-4
6、<<:左移
00000011 <<2 ————————— 00001100
所以:3<<2=12
7、定义Example07类,其代码如下:
class Example09 { }
public static void main(String[] args) { }
System.out.println(4&3); System.out.println(4|3); System.out.println(4^3); System.out.println(~3);
System.out.println(3<<2);
运行结果如图2-10所示。
图2-10 运行结果
由此可见,二进制位运算与程序运算的结果一致。
三、案例总结
Java中的位运算符以及其范例如下错误!未找到引用源。所示。 运算符 运算 范例 0 & 0 0 & 1 1 & 1 1 & 0 0 | 0 0 | 1 结果 0 0 1 0 0 1 13
& 按位与 | 按位或 博学谷——让IT教学更简单,让IT学习更有效
1 | 1 1 | 0 ~ 取反 ~0 ~1 0 ^ 0 ^ 按位异或 0 ^ 1 1 ^ 1 1 ^ 0 << >> >>>
左移 右移 无符号右移 00000010<<2 10010011<<2 01100010>>2 11100010>>2 01100010>>>2 11…11100010>>>2 1 1 1 0 0 1 0 1 00001000 01001100 00011000 11111000 00011000 0011…111000 案例2-10 运算符的优先级
一、案例描述
1、 考核知识点
编号:00102013
名称:运算符的优先级
2、 练习目标
? 掌握运算符之间的优先级
3、 需求分析
当使用不同的运算符进行运算时,应该按照一定的顺序进行运算,即根据运算符的优先级进行运算。为了让初学者掌握运算符的优先级,本案例将通过表达式的运算,讲解运算符的优先级。
4、 设计思路(实现原理)
1) 编写一个类Example10
2) 在main方法中定义两个int型变量x和y 3) 将表达式3>2*x?x++:--x赋值给y 4) 用输出语句分别输出变量x和y的值
二、案例实现
定义Example10类,其代码如下:
class Example10 {
public static void main(String[] args) {
int x=1;
14
博学谷——让IT教学更简单,让IT学习更有效
int y=0;
y=3>2*x?x++:--x;
System.out.println(x); System.out.println(y); } }
运行结果如图2-11所示。
图2-11 运行结果
三、案例总结
1、本案例中表达式的运算过程如下所示:
1) 在表达式y=3>2*x?x++:--x;中赋值运算符=的优先级最低,所以要先运算=右侧的表达式; 2) ?:为三元运算符,该运算符的优先级较低,要先运算?前面的表达式。
3) *的优先级比>的高,所以3>2*1为true。按照三元运算符的运算规则表达式等价于y=x++ 4) x++的++在后面,所以要先进行其它运算再自增,最后结果为x=2,y=1
2、下表列举了Java中运算符的优先级,数字越小优先级越高。 优先级 1 2 3 4 5 6 7 8 9 10 11 12 13 14 运算符 . [] () ++ -- ~ ! (数据类型) * / % + - << >> >>> < > <= >= == != & ^ | && || ?: = *= /= %= += -= <<= >>= >>>= &= ^= |= 2、其实没有必要去刻意记忆运算符的优先级。由于运算符“()”的优先级最高,编写程序时,尽量使用括号“()”来实现想要的运算顺序,以免产生歧义。
15
博学谷——让IT教学更简单,让IT学习更有效
案例2-11 if条件语句
一、案例描述
1、 考核知识点
编号:00102014 名称:if条件语句
2、 练习目标
? 掌握if条件语句的语法格式 ? 了解if条件语句的执行流程
3、 需求分析
if…else if…else语句用于对多个条件进行判断,进行多种不同的处理。为了让初学者掌握if…else if…else语句的用法,本案例将使用if…else if…else语句实现判断某月是哪个季节的功能。 设计思路(实现原理) 1)编写一个类Example11
2)定义一个变量month用于存储月份。
3)用if条件语句,判断这个月份在哪一个季节并输出结果,如:春季是3、4、5月,夏季是6、7、8月,秋季是9、10、11月,冬季是12、1、2月
4)由于一年只有12个月,所以要过滤除1-12以外的月份值
二、案例实现
定义Example11类,其代码如下:
class Example11 {
public static void main(String[] args) {
int month = 3;
if(month == 3 || month == 4 || month == 5) { }
else if(month == 6 || month == 7 || month ==8) { }
else if(month == 9 || month == 10 || month ==11) { }
else if(month == 1 || month == 2 || month ==12) {
16
System.out.println(month+\月是秋季\System.out.println(month+\月是夏季\System.out.println(month+\月是春季\