运算符与分支结构
1.运算符
运算符有 算术运算符 关系运算 符逻辑运算符
1.1关系运算符
(大于) < (小于) >= (大于等于) <=(小于等于) == (是否等于) !=(是否不等于)
使用关系运算符的结果为布尔类型的数据 boolean
public static void main(String[] args) {
boolean add1 = 5 > 7;
System.out.println(add1);
boolean add2 = (6> 7);
System.out.println(add2);
boolean add3 = 5 >= 5;
System.out.println(add3);
boolean add4 = 7!= 9;
System.out.println(add4);
boolean add5 = 4 == 4;
System.out.println(add5);
}
1.2逻辑运算符
返回值的结果是个布尔类型的数据
与 或 非
与:
&&
语法格式
条件1 && 条件2 …
条件就是咱们刚才讲的关系运算符的表达式
条件1 和条件2 都为true的时候,整体的结果就为true 条件1和条件2只要有一个为false 整体结果就为false。
逻辑与
或:
||
语法格式
条件1 || 条件2 || …
条件1和条件2 都为false的时候 才为false。如果一个条件为true 整体结果的就为true。
非:
!
语法格式:
!条件
条件是true,那么整体结果就为false。 条件为false ,整体结果就是true。、
都是反着来的
public static void main(String[] args) {
boolean add1 = 7 > 5 && 7 < 6;
System.out.println(add1);
boolean add2 = (7 > 8) && (5 > 2);
System.out.println(add2);
boolean add3 = (6 > 4) && (5 > 6) && (7 >7);
System.out.println(add3);
}
public static void main(String[] args) {
boolean arr1 = 44 > 58 || 4 > 7;
System.out.println(arr1);
boolean arr2 = 5 > 7 || 8 > 2 || 6 > 3;
System.out.println(arr2);
}
1.3逻辑运算符的短路原则
逻辑与的短路原则:
条件1 && 条件2 && 条件3…
逻辑与只要一个为false整体就为false了。 短路原则:只要碰到条件为false的话,后面的条件就不执行了。 比如 条件1为false了,那么条件2和条件3就不执行了。
逻辑或的短路原则:
条件1 || 条件2 || 条件3 …
逻辑与只要一个为true 就整体为true 短路原则:只要条件为true的话,后面的条件就不再执行了。 比如条件1为true,那么条件2和条件3就不执行了。
2.分支结构【重点】
2.1if分支
语法格式
if (表达式) {
语句体;
}
表达式:这个表达式的结果必须是一个布尔类型的数据
如果代码走到if的时候,会先判断小括号里面表达式。如果表达式的结果为true的话,就会执行大括号里面的语句体,如果表达式结果为false的话,就不执行大括号里面的语句体。代码往下继续执行。
2.2if-else分支
if (表达式) {
语句体1
} else {
语句体2
}
执行流程 首先判断表达式 如果表达式为true的话,执行语句体1,如果为false的话,执行语句体2 只能运行两个之中一个
2.3if-else的嵌套写法
if (表达式) {
if (表达式) {
语句体1
} else {
语句体2
}
}
public static void main(String[] args) {
int a1 = 11 ;
int a2 = 15 ;
if(a1 > 10 ) {
if ( a1 < a2 ) {
System.out.println("a1<a2");
} else {
System.out.println("hhh");
}
} else {
System.out.println("a1>10");
}
}
2.4if-else if 分支结构
语法格式
if (表达式1) {
语句体1
} else if (表达式2) {
语句体2;
} else if (表达式3) {
语句体3
} else if (表达式4) {
语句体4
}else {
语句体n
}
首先判断if后面的表达式1,如果表达式1为true,就执行当前大括号里面的语句体1,后面的就不执行。如果表达式1为false,不执行语句体1,接着判断表达式2,如果为true,执行语句体2,以此类推。相当于就是在判断表达式,一旦表达式为true的话,就执行当前的语句体,为false,就不执行的
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
if (a == 0) {
System.out.println("生成了一只白猪");
} else if (a == 1) {
System.out.println("生成了一只黑猪");
} else if (a == 2) {
System.out.println("生成了一只红猪");
} else {
System.out.println("生成一只变形猪");
}
}
2.5swicth-case结构
语法格式
switch (表达式) {
case 常量1:
语句体1;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
…
default:
语句体n;
break;
}
执行流程 去拿switc后面的小括号里面的表达式的值,去匹配case后面的常量,如果匹配到就执行后面的语句体。下面就不执行了。
break;//终止打断的意思
public static void main(String[] args) {
// 随意输入一个数字1-7,判断是周几,输入其他数字提示输入错误。(switch语句写)
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
switch (a) {
case 1:
System.out.println("今天是周一");
break;
case 2:
System.out.println("今天是周二");
break;
case 3:
System.out.println("今天是周三");
break;
case 4:
System.out.println("今天是周四");
break;
case 5:
System.out.println("今天是周五");
break;
case 6:
System.out.println("今天是周六");
break;
case 7:
System.out.println("今天是周七");
break;
default:
System.out.println("输入错误");
break;
}
}
swicth (表达式) {
}
表达式的值可以是 int short byte char String 枚举