逻辑运算符:
&:逻辑与 (有false则整个表达式的结果为false,只有当各个表达式的结果都为true的时候,整体才为true)
漂亮并且身材好
|:逻辑或 (有true则整体表达式的结果为true)
漂亮或者身材好
!:逻辑非 (以前是false,现在就是true。以前是true,现在就是false)
只要是女的就行 !男
^:逻辑异或(相同为false,不同为true)
false^false //结果是false
true^true //结果是false
最后发现你也找不到,就找了个男的。
&&和&的区别是什么?
&&:短路与。当左边的表达式的结果为false的时候,右边的表达式不执行。
&:逻辑与。无论左边表达式的结果是false还是true,右边的表达式都会执行。
但是,不管用&&或者&,最后计算出来的整体表达式的结果都是一样的。
//++x && ++y
||和|的区别:
||:短路或,当左边表达式的结果是true的时候,右边不执行。
|:逻辑或。无论左边的结果是true还是false,右边都执行。
但是,不管用||或者|,最后计算出来的整体表达式的结果都是一样的。
开发中:
我们常用的是: &&,||,!
位运算符:(功能跟逻辑运算符类似,把0看做false,1看做是true)
位运算符:计算的数据的补码形式。
&:按位与 有0则0.
|:按位或 有1则1. 6&2
^:按位异或 相同为0,不同为1
一个数据被同一个数据位移或两次,结果不变。(10^5^5)
~:按位取反 1变0,0变1
<<:左移 相当于该数据乘以2的几次幂 右边空缺位用0补齐。
>>: 右移 相当于该数据乘以2的几次幂 最高位是0,空缺位用0补齐。如果最高位是1,空缺位用1补齐。
>>>:无符号右移 不管最高位是0还是1,空缺位都用0补齐。
三元运算符:
格式: 关系表达式?表达式1:表达式2;
执行顺序:
首先先判断关系表达式的值,如果是true,执行表达式1,如果是false,执行表达式2.
注意:
1、关系表达式的结果只能是boolean。
2、表达式1和表达式2只能运行一个。
做两个练习题:
1、比较两个整数是否相同。
2、求三个整数中的最大值。
int a = 10;
int b = 20;
int c = 30;
int max = a>b ? (a>c?a:c) : (b>c?b:c) ;
自行测试然后在控制台输出结果。
Scanner的使用步骤是什么:
A:导包。
在类的上边写上: import java.util.Scanner;
B:创建键盘录入对象。 Scanner sc = new Scanner(System.in);
C:通过对象调用方法。 int x = sc.nextInt();
流程控制语句:
顺序结构:代码是从上往下,一次来执行的。
选择结构:
if语句:
格式1:
if(关系表达式){
语句体;
}
执行流程:
先执行关系表达式,看它的结果是true还是false,
如果是true,就执行语句体,
如果是false,不执行语句体。
格式2:
if(关系表达式){
语句体1;
}else {
语句体2;
}
执行流程:
先执行关系表达式,看它的结果是true还是false,
如果是true,执行语句体1;
如果是false,执行语句体2;
思考:if的第二种格式和三元表达式有什么区别?
1、能用三元运算符解决的问题,都可以用if来搞定,反之不行。
2、既然是运算符,就肯定要有一个结果。
推荐:优先使用三元运算符,因为它的格式比较简单。
格式3:
if(关系表达式1){
语句体1;
}else if(关系表达式2) {
语句体2;
}else if (关系表达式3){
语句体3;
}else{
语句体4;
}
执行流程:
先执行关系表达式1,看它的结果是true还是false,
如果是true,执行语句体1,if语句结束。
如果是false,继续判断关系表达式2.
。。。。。。。
最后都不满足,执行else中的语句体4;
注意事项:
1、关系表达式的结果必须是boolean类型。
2、if语句后边的大括号可以省略,省略的话只能控制紧跟在它后边的那一行有效代码。
推荐:大括号不要省略。
3、一般来说,有大括号的地方一般是没有分号。
swtich-case语句:
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
..........
default:
语句体4;
break;
}
//给定一个值(整数),输出对应星期几
示例:用户输入1,打印星期一
表达式:
基本:byte,short,char,int
引用:JDK1.5以后支持枚举,JDK1.7以后支持String
使用switch的时候有哪些注意事项:
1、case后边必须是常量。而且多个case时,值不能重复。
2、default可以省略吗?
可以,但是不建议省略,因为它存的所有非正常情况,相当于是else。
3、default可以不放在最后吗?
可以。
4、break可以省略吗?
最后一个break可以省略,程序没问题。
其他break省略的话,可能会发生case穿透。
5、swtich-case语句什么时候结束?
A:遇到break。
B:执行到switch的右大括号。
什么时候使用if,什么时候使用switch?
看需求。如果解决的是固定值的问题,用swtich,如果是区间的问题,用if。
能用switch解决的都可以使用if来解决,反过来不一定。
if(month==3||month==4||month==5)
循环结构:
|
|