自增自减
int a = 1;
System.out.println(a++);//1---先取值再自增
int b=1;
System.out.println(++b);//2---先自增再取值
int c=1;
int d = c++;
int e = ++c;
System.out.println(d);//1---先取值再自增
System.out.println(e);//3---先自增再取值
&&和&区别
执行的效率不同,&&比&的执行效率高
两者都是进行条件校验,都是条件1和条件2都为true才true
(条件1)&(条件2) 条件1和条件2都会去判断,两者都true才true
(条件1)&&(条件2) 条件1只要false条件2就不会去判断,系统更高效
分支结构
if分支
单分支:
if(判断条件){
代码。。。
}
多分支:
if(判断条件){
代码1。。。
}else{
代码2。。。
}
嵌套分支:
if(判断条件1){
代码1。。。
}else if(条件2){
代码2。。。
} else if(条件3){
代码3。。。
}else{
代码4。。。
}
switch分支
switch(exp)中,exp是一个整数表达式, 整数表达式可以是int基本类型或Integer包装类型,由于byte,short,char都可以隐含转换为int,所以也支持
switch(变量或者表达式){
//jdk1.7后条件新增String
case 1:
case 2:
case 3:
case 4:
default:
}
case穿透
case穿透就是:当在switch语句中,执行case分支语句,如果满足case1,但是在case1的语句块中,没有加break;即使case1满足条件,程序仍然会向下执行case2,即使case2不满足条件,除非case2语句块中有break;,程序会跳出switch选择结构,否则继续执行case3,一直这样执行下去,直到整个switch语句全部执行完毕,才能结束!
switch (1) {
case 1:System.out.println(1);
case 2:System.out.println(2);
case 3:System.out.println(3);break;
case 4:System.out.println(4);
case 5:System.out.println(5);
}
输出结果为:
1
2
3
case合并
int i=5;
switch(i){
case 1 : case 2 : case 3 :
System.out.println("Test0!");
break;
case 4 : case 5 : case 6 :
System.out.println("Test1!");
}
结果为:
Test1!
循环结构
for结构
for(循环的开始位置;循环的判断条件;循环的更改条件){
要重复干的事情/循环体
}
嵌套for循环
for(1;2;3){
//外循环
for(1;2;3){
//内循环
}
}
外循环执行一次,内循环执行n次
for(int i = 1 ; i <= 5 ; i++) {
//外循环--执行5次
for(int j = 1 ; j <= 5 ; j++) {
//内循环--执行5次
System.out.print("* ");//同行展示
}
System.out.println();//换行
}
外循环控制行,内循环控制列,结果:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
while循环
先判断,后执行
while(执行条件){
代码…
}
do-while循环
先执行,后判断
do{
代码…
}while(执行条件);
三种循环总结
–for(开始位置;判断条件;更改条件){循环体}
需要知道开始位置,需要知道结束位置,需要知道数据的变化规律
–while(判断条件){循环体}
只需要指定条件–先判断满足了条件就执行
–do{循环体}while(判断条件);
只需要指定条件–先执行再判断条件
break和continue
两者都是终止循环的关键字。
break: 中断当前循环,简单粗暴
continue:跳出本次循环,进入下一轮
例子:接收用户输入的100次数字,如果不是88继续输入,找到88就返回
for(int i=<