接第四章
赋值运算符
基本的赋值运算符: =
扩展的赋值运算符:+= (a += b 相当于a = a + b)
-= (a -= b 相当于a = a - b)
*= (a *= b 相当于a = a * b)
/= (a /= b 相当于a = a / b)
%= (a %= b 相当于a = a % b)
扩展类的赋值运算符都会自动强制类型转换,比如之前我们在讲强制类型转换的时候
这里直接将byte类型的a 和 10 进行混合运算,系统会报错,因为两个类型进行混合运算各自先转换为了int类型的数据再做混合运算,而我们又用byte类型的b来接受显然是会报错的,但是当我们用“ += ”运算符时系统却没有报错,这个运算结果的类型还是byte类型,因为计算机底层使用了强制类型转换,在精度方面可能会有所损失。
条件运算符
又称:三目运算符、三元运算符
语法格式:布尔表达式 ?表达式1:表达式2
运算原理:当布尔表达式的结果为true则将表达式1的结果作为结果,当布尔表达式的结果为false则将表达式2的结果作为结果
控制语句
分支语句
控制语句用于控制程序的执行流程,改变程序的执行次序
包括
- 分支语句:if语句、switch语句
- 循环语句:for循环、while循环、do while循环
- 跳转语句:break语句、continue语句
if语句
写法1:if(布尔表达式){
分支语句;
}
如果布尔表达式结果为true则分支语句执行,为false则不执行
写法2:if(布尔表达式){
分支语句1;
}else{
分支语句2;
}
如果布尔表达式结果为true则分支语句执行,为false则执行分支语句2
写法3:if(布尔表达式){
分支语句1;
}else if(布尔表达式){
分支语句2;
}else if(布尔表达式){
分支语句3;
}
从上往下依次判断布尔表达式结果为true则该分支语句执行并且整个if语句结束,如果都为false则没有分支执行;
这里输出了“a < b”,在第三个布尔表达式中(3 < 4)为true,但是分支语句3没有执行,因为上面的布尔表达式(a < b)为true,在执行完分支语句2之后整个if语句也就自动结束了,不会再执行下面的else if语句。
switch语句
写法switch(expression){
case value1:
当expression的值等于value1时,执行这里的代码
代码片段1;
break;
case value2:
当expression的值都等于value2时,执行这里的代码
代码片段2;
break;
case value3:
当expression的值都等于value3时,执行这里的代码
代码片段3;
break;
……
default:
当expression的值都与case语句不匹配时,执行这里的代码
代码片段;
}
expression作为表达式运行完之后的结果必须为一个值,并且类型为int型、枚举类型或者字符串类型,每个case语句中都有一个break;在break;语句执行时也代表着switch语句的结束。case后面的值只能是常量,不能是变量。
case语句可以合并:例如case 1: 分支语句1
case 2: 分支语句2
case 3: 分支语句3
如果分支语句1、2、3都想同的话使用case合并会更加便捷------> case 1: case 2: case 3:
跟分支语句1或者2或者3
如果case语句中少了break;语句则会发生数据穿透
在java12中switch引入了新特性
switch(experssion){
case 1 -> System.out.println("case后面的冒号可以不同打了");
/*case 2 -> System.out.println("2");
case 3 -> System.out.println("2");
case 4 -> System.out.println("2");*/
//上面的case 2,case3,case4合并时至于要用逗号隔开,不用一直加case。
case 2,3,4 -> System.out.println("2");
}
循环语句
包括:for循环、while循环、do while循环三种。
当在程序执行中每段代码要频繁多次使用的时候一般使用循环语句来实现。
for循环
语法结构:for(初始化表达式;条件表达式;更新表达式){
循环体;
}
初始化表达式最先执行,并且只执行一次。条件表达式的结果必须是一个布尔类型。更新表达式负责每次循环后更新某个变量的值,进而使得条件表达式的结果能够变为false,for循环才能得以结束。
for循环嵌套
for(初始化表达式;条件表达式;更新表达式){(外部循环体)
for(初始化表达式;条件表达式;更新表达式){(内部循环体)
循环体;
}
}
每当外循环体执行一次那么内循环体执行一个周期
while循环
语法格式:while(布尔表达式){
循环体;
}
只要布尔表达式的结果为true那么循环体就会一直执行。while和for循环的使用主要是看循环次数是否固定,如果固定一般使用for循环处理,不固定则使用while循环。
do while循环
语法格式:do{
循环体;
}while(布尔表达式);
先执行循环体再判断布尔表达式,一般适用于不管条件是否成立,第一次必须要执行的业务。
跳转语句
break;语句
1.出现在switch语句中时用来终止switch语句的执行。
2.出现在循环中用来终止循环。
3.如果两个循环嵌套在一起,有一条break语句时就近原则终止离它最近的那条for循环语句。
continue;语句
1.终止当前循环并直接跳转到下一循环
例如:输出数字1~10,在输出5时直接跳过,代码如下
break与return;
break语句主要用来终止循环,而return语句主要终止的是整个方法。