一、逻辑运算符的应用
逻辑运算符:&, |, ^, !
&&, ||
逻辑运算符一般用于连接boolean类型的表达式或者值。
&逻辑与:有false则false。
* |逻辑或:有true则true。
* ^逻辑异或:相同为false,不同为true。
* !逻辑非:非false则true,非true则false。
* 特点:偶数个不改变本身。
1.&&与&,||与|之间的区别
A:* &&和&的区别?
* a:最终结果一样。
* b:&&具有短路效果。左边是false,右边不执行。
* &是无论左边是false还是true,右边都会执行
int a = 2;
int b = 5;
if((a++ > b) & (a > b++))
{
}
System.out.println("a = " + a);
System.out.println("b = " + b);
输出:a = 3, b = 6
int a = 2;
int b = 5;
if((a++ > b) && (a > b++))
{
}
System.out.println("a = " + a);
System.out.println("b = " + b);
输出:a = 3, b = 5
B:||和|的区别:同上。
2. 实现两个整数的交换
int a = 2;
int b = 3;
//定义一个第三变量用来交换值
int max = 0;
max = a;
a = b;
b = a;
a = max;
//利用逻辑运算符异或"^"
a = a ^ b;// 2^3
b = a ^ b;// (2^3)^3 >> 2
a = a ^ b;// (2^3)^2 >> 3
二、位运算符的应用:最有效率的算出2 * 8的结果
int a = 2;
System.out.println(a<<3);
输出: 16
三、三目运算符的应用
1.求两个数是否相等
int a = 2;
int b = 3;
System.out.println(a == b ? true : false);
输出: false
2.求三个数的最大值
int a = 2;
int b = 3;
int c = 4;
System.out.println(a > b ? (a > c ? a : c) : (b > c ? b : c));
输出: 4
四、switch表达式可以用哪些数据类型?
int, char, byte, short, 枚举(jdk1.5以上), String(jdk1.7以上)
五、if语句和switch语句的区别
1..选择结构if语句格式及其使用
A:if语句的格式:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
> B:执行流程:首先计算比较表达式1看其返回值是true还是false,如果是true,就执行语句1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
> 如果是true,就执行语句体2,if语句结束。 如果是false,接着计算比较表达式3看其返回值是true还是false,
>如果都是false,就执行语句体n+1。
> C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示、
import java.util.Scanner;
class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请您输入成绩"); //提示输入
int a = sc.nextInt();
if (a > 0 && a < 60) {
System.out.println("E等");
}else if (a < 70) {
System.out.println("D等");
}else if (a < 80) {
System.out.println("C等");
}else if (a < 90) {
System.out.println("B等");
}else if (a <= 100) {
System.out.println("A等");
}else {
System.out.println("您输入的成绩有误");
}
}
}
2.选择结构switch语句格式及其使用
A:switch格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
B:switch语句的格式解释
(基本数据类型,只要能提升为int的都可以,引用数据类型中的枚举(JDK1.5)和String(JDK1.7))
C:执行流程
先计算表达式的值
然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
import java.util.*;
class Dome_01{
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(true) {
System.out.println("请您输入要转换的星期数");
in week = sc.nextInt();
switch(week) {
case 1:
System.out.println("星期1");
break;
case 2:
System.out.println("星期2");
break;
case 3:
System.out.println("星期3");
break;
case 4:
System.out.println("星期4");
break;
case 5:
System.out.println("星期5");
break;
case 6:
System.out.println("星期6");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("您输入的数字有误,请重新输入");
}
}
}
}
3、总结switch语句和if语句的各自使用场景
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
*用switch能做的,用if都能做,单反过来则不行