逻辑运算符(与--&&-&、或--||-|、非!、异式^)
/*
逻辑运算符之"和",又被称之为"与","且"
连接两个boolean表达式,当它们同为true,那么整体返回true;
只要有一个为false,整体返回假;
符号:
&& - 逻辑与,是专用的逻辑符号
& - 位与,本质是位运算符,只是当它左右两端是boolean类型时,
表现出和"&&"同样的效果。
区别:
逻辑与&& 又被称之为"短路运算符",当它判断出第一个表达式为false的时候,
它不会去执行第2个表达式;
位与 不短路
*/
// int a = 10;
// System.out.println(a < 5 & a++ > 10);
// System.out.println(a);
/*
逻辑运算符之"或"
连接两个boolean表达式,当两个表达式有一个为true的时候,整体就为true;
符号
|| - 逻辑或,专用的或符号
| - 位或,本质也是位运算符,只是当它左右两端是boolean类型时,
表现出和"||"同样的效果
区别:
逻辑或 "||" 又被称之为"短路运算符",当它判断出第一个表达式为true的时候,
它不会去执行第2个表达式;
位或"|" 不短路
*/
// System.out.println(true | true);
/*
逻辑运算符之"非"
用来对一个boolean表达式的结果取反。如果这个表达式是true,取反后就是false;
反之亦然。
符号
!
*/
// System.out.println(!true);
/*
异或,效果是当两个boolean表达式不同的时候返回true,相同的时候返回false;
符号:
^
*/
System.out.println(true ^ false);
if语句(单、双、多)
/*
单分支if语句:
if(条件表达式){
语句块
}
一旦遇到if,程序首先会对条件表达式进行判定,
如果为true,则进入{}内部开始执行,执行结束以后,出了{}继续
执行后面的代码;
如果为false,则跳过{},执行{}后面的代码
*/
// Scanner scan = new Scanner(System.in);
// System.out.println("请输入第一个数:");
// int num1 = scan.nextInt();
// System.out.println("请输入第二个数:");
// int num2 = scan.nextInt();
// System.out.println("请输入第三个数:");
// int num3 = scan.nextInt();
// scan.close();
//
// int max = num1;
//
// if(max < num2){
// max = num2;
// }
//
// if(max < num3){
// max = num3;
// }
//
// System.out.println("最大的数是:" + max);
/*
双分支if语句
if(条件表达式){
语句块1
}else{
语句块2
}
执行顺序:
首先判断条件表达式,
如果为true则进入语句块1执行,执行完之后,跳到else的结束}外面,
顺序往下;
如果为false则进入语句块2执行,结束后跳到else的结束}外面,
顺序往下。
*/
// Scanner scan = new Scanner(System.in);
// System.out.println("顾客你好,请输入你的年龄:");
// int age = scan.nextInt();
// scan.close();
// if(age >= 18){
// System.out.println("欢迎光临");
// }else{
// System.out.println("滚!");
// }
/*
多分支if语句:
if(条件表达式1){
语句块1
}else if(条件表达式2){
语句块2
}else if(条件表达式3){
语句块3
}.....{
}else{
语句块n
}
执行顺序:
首先判断条件表达式1
如果为true,则执行语句块1,然后跳到最后一个}的后面顺序往下执行;
如果为false,则判断条件表达式2
如果为true,则执行语句块2,然后跳到最后一个}后面顺序往下
如果为false,则判断条件表达式3
.....
如果所有的条件表达式判断都为false,则进入最后一个else
执行,然后出了最后一个}往下顺序执行
注意:
最后一个不带条件的else不是必须的,可以根据情况自主选择
*/
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生的成绩:");
int score = scan.nextInt();
scan.close();
// if (score >= 0 && score <= 100) {
// if (score >= 90) {
// System.out.println("A");
// } else if (score >= 80) {
// System.out.println("B");
// } else if (score >= 70) {
// System.out.println("C");
// } else if (score >= 60) {
// System.out.println("D");
// } else {
// System.out.println("E");
// }
// } else {
// System.out.println("成绩无效");
// }
if(score > 100 || score < 0){
System.out.println("成绩无效");
}else if (score >= 90) {
System.out.println("A");
} else if (score >= 80) {
System.out.println("B");
} else if (score >= 70) {
System.out.println("C");
} else if (score >= 60) {
System.out.println("D");
} else {
System.out.println("E");
}
switch语句
/*
1、在switch当中,所有的case,包括default是没有顺序可言的;
2、在switch每个分支中,如果最后不写break,那么程序会自动进入下一个分支开始执行;
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入今天是星期几?(1-7)");
int dayOfWeek = scan.nextInt();
scan.close();
switch (dayOfWeek){
default:
System.out.println("狗日的,没有这个日期");
break;
case 1:
System.out.println("召开部门会议");
break; //break只能写在switch 和 循环当中,其他地方不能写
case 2:
case 4:
System.out.println("健身房锻炼");
break;
case 3:
case 5:
System.out.println("加班写代码中");
break;
case 6:
System.out.println("回家陪父母孩子");
break;
case 7:
System.out.println("过过二人世界");
break;
}
}