~~
05 选择&循环
~~
1、逻辑运算符(&、&&、|、||、^、!)
(1)&(单与):同true为true,可做逻辑运算,也可做位运算,没有短路功能,两端都会运算。
(2)&&(双与):同true为true,只能做逻辑运算,拥有短路功能,左端为false时,整个表达式为false,右端不运算。
(3)|(单或):有一端为true则表达式结果为true,可做逻辑运算,也可做为运算,没有短路功能,两端都会运算。
(4)||(双或):有一端为true则表达式结果为true,只能做逻辑运算,拥有短路功能,左端为true时,整个表达式为true,右端不运算。
(5)^(异或):同false异true。
(6)!(非):本来是true,变为false;本来为false,变为true
2、位运算符(&、|、~、^、<<、>>、>>>)
3、分支语句
(1)单分支
if(条件判断语句){
功能语句
}
(2)双分支
if(条件判断语句){
功能语句
}else{
功能语句
}
(3)多分支
if(条件判断语句1){
功能语句1
}else if(条件判断语句2){
功能语句2
}else if(条件判断语句3){
功能语句3
}else{
功能语句
}
注:①只执行第一个匹配条件对应的功能语句,一旦对应的功能语句执行完,则直接结束此选择结构。
②else、else if 不能单独存在,必须与if连用
(4)switch
switch(变量){
case 变量值1:
功能语句1
break;
case 变量值2:
功能语句2
break;
.
.
.
case 变量值n:
功能语句n
break;
default:
功能语句
break;
}
注:①:允许使用的变量类型:byte、short、int 、char、jdk5后允许enum、jdk7后允许String。
②switch结构会从第一个匹配的条件开始,一直执行到switch结构的结束。相当于匹配到的变量值的地方是一个入口,一直到结构结束,所以要为每个case添加break语句,以便在执行匹配的功能语句后跳出switch结构。
4、循环
(1)while(){}
while(条件判断语句){
循环体
}
(2)do{}while(); :不管条件是否匹配,都至少执行一次循环体
do{
循环体
}while(条件判断语句);
(3)for(){}
for(初始化值;条件判断;条件控制){
循环体
}
(4)循环执行流程
for(①初始化值;②条件判断;③条件控制){
④循环体
}
第一次:① --> ② --> ④ -->③
的二次:② --> ④ -->③
第三次:② --> ④ -->③
.
.
.
最后以一次:②
5、双层for循环
for(初始化值;条件判断;条件控制){
for(初始化值;条件判断;条件控制){
循环体
}
}
eg:
System.out.println("----------------------");
/* 行i 列j j == 6 - i
***** 1 5
**** 2 4
*** 3 3
** 4 3
* 5 1
/
System.out.println("(1)");
for(int i = 1;i <= 5;i ++){
for(int j = 1;j <= 6-i;j ++){
System.out.print("");
}
System.out.println();
}
System.out.println("(2)");
for(int i = 5;i >= 0;i --){
for(int j = 0;j < i;j ++){
System.out.print("*");
}
System.out.println();
}
6、循环控制语句:brake、continue、return
(1)break:结束本层循环,若要结束多层循环,则需运用锚点技术
out:for(int i = 1;i <= 10;i ++){
for(int j = 1;j <= i;j ++){
if(i == 5){
break out;
}
System.out.println(j);
}
}
(2)continue:跳过本次循环,继续下一次循环
(3)return:结束整个方法
注:循环控制语句后不能紧跟任何语句,因为不会执行。