逻辑运算符,位运算符,分支结构

1,逻辑运算符的基本用法
A:逻辑运算符有哪些
*&,|,^,!
*&&,||
B:注意事项
*a:逻辑运算符一般用于连接boolean类型的表达式或者值
*b:表达式:就是用运算符把常量或者变量连接起来复合java语法的狮子
*算数表达式:a+b;
*比较表达式:a==b(条件表达式)
c:结论:
&逻辑与:有false则false
|逻辑或:有true则true
^逻辑异或:相同为false不同为true
!逻辑非:非false则true,非true则false
*特点,偶数个不改变(类似负负得正)
2,逻辑运算符&&和&的区别
*A:&&和&的区别?
*a:最终结果是一样的
*b:&&具有短路效果,左边是false,右边不再执行
*B:同理||和|是一样的
*a:最终结果一样
*b:||和|具有短路效果,左边是true,右边不再执行
*C:用&&和||效率高一些
3,位运算符的基本用法
*A:位运算符有哪些?
&,|,^,~,>>,>>>,<<
*B:位运算符的基本用法
介绍:
位运算符时针对二进制数的每一位进行运算的符号,他是专门针对数字0和1进行操作的。

1)
与运算符&是将参与运算的两个二进制数进行运算,如果两个二进制位都为1,则该运算的结 果为1,否则为0.
例如:
00000110
&00001011
————
00000010
2)
位运算|是将参与运算的两个二进制数进行或运算,如果二进制位上有一个值为1,则该位的运算结果为1,否则为0;
例如:
00000110
| 00001011
————
00001111
3)
位运算符~只针对一个操作数进行操作,如果二进制位是0,则取反值为1,如果为1,则为0.
例如:
~ 1000101
————
0111010
4)
位运算符^是将参与运算的两个二进制数进行异或运算,如果二进制位相同,则值为0,否则为1。
例如:
00000110
^ 00001011
————
00001101

4,位异或运算符的特点及其面试题
*A:特点:
一个数据对另一个数据位异或2次,该数据本身不变
*B:面试题
实现两个整数变量的交换:
//第一种,定义第三方变量(建议开发就用这种)
int temp;
temp = x;
x=y;
y=temp;
//第二种,不需要定义第三方变量,但是有弊端,
// 可能会超出int的取值范围
x=x+y; //15=5+10
y=x-y; //5=10-5
x=x-y; //10=15-5
System.out.println(x);
//第三种,不需要第三方变量,用^(异或)来解决
x=x^y; //5^10
y=x^y; //5^10
x=x^y; //5^10
5,位运算符的基本用法2
A:演示>>,>>>,<<的用法
向左移动几位就是乘以2的几次幂
位运算<<就是将操作数所有进制向左移动一位,运算时右边的空位补0,左边移动的部位舍去。
例如:
00001011 <<1
——————
00010110
向右移动几位就是除以2的几次幂
位运算>>是将操作符所有进制向右移动一位,运算时左边的空位根据符号位补0或1(原来是负数补1,正数补0)。
00001011 >>1
——————
00000101

位运算符>>>就是将操作数所有二进制位向右移动一位运算时左边的空位补0.(不管原数正负)。
00001011 >>>1
——————
00000101
B:以为有效率的方式计算28
首先计算机计算2
8是先将其转化为二进制再想成
所以用<<,只是操作2,所以更有效率
2<<3=2*8
6,三元运算符
A:格式:
(关系表达式)?表达式1:表达式2;
B:获取两个数中的最大值
int x=5;
int y=10;
int z;
z=(x>y)?x:y;
如果表达式成立,将第一个值给他,不成立,第二个值
7,键盘录入
A:导包:
import java.util.Scanner;
B:创建键盘录入对象
Scanner sc = new Scanner(system.in);
C:通过对象获取数据
int x = sc.nextInt();
8,选择结构,if语句的格式及其使用
*A:分类:
*if语句
*switch语句
*B:if语句的格式
if(比较表达式){
语句体;
};
*C:执行流程:
*先计算比较表达式的值,看其返回值是true还是false
*如果是true就执行语句体,不是就跳出if语句
9,if语句和三元运算的区别
三元运算实现的,都可以采用if语句实现,反之则不成立
什么时候if语句不能转换为三元运算
当if语句操控的是一个输出语句时不行
因为三元是一个运算符,运算操作完就应该有一个结果,而不是一个输出

10,switch语句的注意事项

* a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
* b:default可以省略吗?
    * 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
    * 特殊情况:
    * case就可以把值固定。
    * A,B,C,D
* c:break可以省略吗?
    * 最后一个可以省略,其他最好不要省略
    * 会出现一个现象:case穿透。
    * 最终我们建议不要省略
* d:default一定要在最后吗?
    * 不是,可以在任意位置。但是建议在最后。
* e:switch语句的结束条件
   * a:遇到break就结束了
    * b:执行到switch的右大括号就结束了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值