1.运算符
1.1 逻辑运算符
1.1.1 逻辑运算符的基本用法
A:逻辑运算符有哪些
&(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
注意事项:
a:逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6 。
b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b
关系表达式:a == b
B.案例演示:逻辑运算符的基本用法
C:结论:
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。
1.1.2 逻辑运算符&&和&的区别
A:案例演示
&&和&的区别?
a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行。
B:案例演示
1.2 位运算符
1.2.1 位运算符的基本用法1
A:位运算符有哪些
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
注意事项:位运算是直接对二进制补码进行运算。运算效率高一些
B:案例演示
&,|,^,~ 的用法
结论:
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0 符号位也包含在内取反
正数的按位反:+9
原码:0 0001001
反码:0 0001001
补码:0 0001001
按位取反 1 1110110 补码
再推回原码
1 1110110 补码
- 1
---------------------------- -
1 1110101 反码
取反
----------------------
1 0001010 原码
最后结果是:-1
1.2.2 位异或运算符的基本用法2及面试题
A:案例演示
<<:左移 空位补0,被移除的高位丢弃。
>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
B:结论:
<< : 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
>> : 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5
1.2.3 位异或运算符的特点及面试题
A:案例演示
位异或运算符的特点
^的特点:一个数据被另一个数据位异或两次,该数本身不变。
自己位异或自己是0 8^8 结果是0
B:面试题:
注意:没有明确指定数据的类型,默认int类型。
案例演示:实现两个值的交换
1.3 三元运算符
1.3.1三元运算符的基本用法
A:三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
B:三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;
C:案例演示
获取两个数中的最大值
获取三个整数中的最大值
2.键盘录入数据
2.1 键盘录入的基本格式
A:为什么要使用键盘录入数据
a:为了让程序的数据更符合开发的数据
b:让程序更灵活一下
B:如何实现键盘录入呢?
先照格式来。
a:导包
格式:
import java.util.Scanner;
位置:
在class上面。
b:创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
c:通过对象获取数据
格式:
int x = sc.nextInt();
C:案例演示
键盘录入1个整数,并输出到控制台。
键盘录入2个整数,并输出到控制台。
键盘录入的练习1
B:案例演示
键盘录入练习:键盘录入三个数据,获取这三个数据中的最大值
键盘录入的练习2