符号 作用 说明
& 逻辑与 a&b,a和b都是true,结果为true,否则为false
| 逻辑或 a|b,a和b都是false,结果为false,否则为true
^ 逻辑异或 a^b,a和b结果不同为true,相同为false
! 逻辑非 !a,结果和a的结果正好相反

常用运算符

符号 作用 说明
&& 短路与 作用和&相同,但是有短路效果
|| 短路或 作用和|相同,但是有短路效果
  • 逻辑与&,无论左边真假,右边都要执行。
  • 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
  • 逻辑或|,无论左边真假,右边都要执行。
  • 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

位运算符:

符号 说明
& a&b, 将a与b的值按位进行与运算
| a|b, 将a与b的值按位进行或运算
~ ~a, 将a值按位进行取反运算
^ a^b, 将a与b的值按位进行异或运算

三元运算符:
关系表达式 ? 表达式1 : 表达式2; 格式
格式解读:
问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。

流程控制语句分类

  1. **顺序结构**

分支结构(if, switch)

循环结构(for, while, do…while)
if语句格式:

  1. if (关系表达式) {

语句体;
}

  1. if (关系表达式) {

语句体1;
} else {
语句体2;
}

  1. if (关系表达式1) {

语句体1;
} else if (关系表达式2) {
语句体2;
}

else {
语句体n+1;
}
分支语句的区别:
1、语法上的区别
三目运算符是运算符,分支语句是流程控制语句
2、返回结果的区别
三目运算符执行结束后必须创建变量保存结果,分支语句可以直接执行代码块
3、效率的区别(不重要)
初期三目运算符效率没有if高(初期的会计算所有结果),现在效率相同
4、使用的区别
进行简单判断且返回常量数据时,使用三目运算符
进行复杂条件判断时,使用分支语句

switch 语句:
格式: 注意:如果switch中得case,没有对应break的话,则会出现case穿透的现象。
switch (表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;

default:
语句体n+1;
break;
}
for 循坏结构:
for (1初始化语句;2条件判断语句;4条件控制语句) {
3循环体语句;
}
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
while 循坏结构
格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
while 循环流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
do…while 循坏
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续

六、三种循环的区别

6.1 while和do…while

  • 语法不同
    while与do…while
  • 执行流程不同
    while先判断循环条件后进行循环体执行,do…while先执行循环体后进行条件判断
  • 循环体执行次数不同
    while循环体可能由于条件不满足一次都不执行,do..while循环体至少执行一次
  • 使用场景不同
    while就是根据条件决定循环体执行,跟循环条件无关必须至少执行

6.2 for循环和while的区别

  • 变量作用域不同
    for循环声明的变量只有当前循环可用,while在外声明可以直接使用
  • 使用场景不同
    已知次数的循环使用for循环,未知次数的循环使用while循环


6.3 死循环

  1. for(;;){}
  2. while(true){}
  3. do {} while(true)