Java中的控制语句和C语言比起来不能说是毫不相干,只能说是同父异母了(实在是太像了)。
不过有些地方还是有些许差异的,这里简单介绍一下Java的部分控制语句。
如果执行语句仅一行,则可以省略大括号{},但不建议省略.
if(关系表达式){
执行语句;//满足if后括号内的条件时执行.
}else if(关系表达式){
执行语句;//不满足if后括号内条件但是满足else if后括号内条件时执行.
}else{
执行语句;//以上都不符合时执行.
}
- //例:
- if(1+1==2){
- System.out.println("1+1=2");
- }else if(1+1!=2){
- System.out.println("1+1!=2");
- }else{
- System.out.println("这日子没法过了");
- }
case后的匹配值不能为变量,且不能重复
switch(表达式){
case 匹配值1:
执行语句1;//若表达式的值与匹配值1相等则执行.
break;
case 匹配值2:
执行语句2;//若表达式的值与匹配值2相等则执行
break;
default:
执行语句;//若以上都不匹配则执行
break;
}
- //例:
- switch(1+1){
- case 1:
- System.out.println("1+1=1");
- break;
- case 2:
- System.out.println("1+1=2");
- break;
- default:
- System.out.println("这日子没法过了");
- break;
- }
JDK12过后优化了switch写法,可以不用写break;了
switch(表达式){
case 匹配值 1->{
执行语句1;
}
case 匹配值 2->{
执行语句2;
}
default ->{
执行语句;
}
}
- //例:
- switch(1+1){
- case 1 ->{
- System.out.println("1+1=1");
- }
- case 2 ->{
- System.out.println("1+1=2");
- }
- default ->{
- System.out.println("这日子没法过了");
- }
- }
执行语句仅一行时可以进一步简写.
switch(表达式){
case 匹配值1 ->执行语句1;
case 匹配值2 ->执行语句2;
default ->执行语句;
}
- //例:
- switch(1+1){
- case 1 -> System.out.println("1+1=1");
- case 2 -> System.out.println("1+1=2");
- default -> System.out.println("这日子没法过了");
- }
执行流程:初始化语句->判断语句(符合条件)->执行语句->条件控制语句->判断语句(不符合条件)->跳出for循环.和C语言一样.
for(初始化语句;判断语句;条件控制语句){
执行语句;
}
- //例:打印从1到100
- for(int i=0;i<100;i++){
- System.out.println(i);
- }
while 执行流程:条件判断语句(符合条件)->执行语句->条件判断语句(符合条件)->执行语句->条件判断语句(不符合条件)->跳出while循环.
do while 执行流程:执行语句->条件判断语句(符合条件)->执行语句->条件判断语句(符合条件)->执行语句->条件判断语句(不符合条件)->跳出while循环.
和while不一样的是,do while会先执行一次执行语句.
while(条件判断语句){
执行语句;
}
do{
执行语句
}while(条件判断语句);
- //例:打印从1到100
- int i=1;
- while(i<101){
- System.out.println(i);
- i++;
- }
- //例:打印从1到100
- int i=1;
- do{
- System.out.println(i);
- i++;
- }while(i<101);
continue:跳过本次循环,进入下一次循环.
break:直接跳出循环体.若有多重循环可以配合给循环体命名来跳出指定循环.可以看下面第三个例子.
- //例:
- //以下代码会打印 1 2 9 10,因为当i符合循环体内if条件时执行continue,跳过本次循环,不执行下面的输出语句.
- for(int i=0;i<10;i++){
- if(i<=8 &&i >=3){
- continue;
- }
- System.out.println(i);
- }
- //例:
- //以下代码会打印 0 1 2,因为当i符合循环体内if条件时执行break,跳出循环体.
- for(int i=0;i<10;i++){
- if(i==3){
- break;
- }
- System.out.println(i);
- }
- //例:
- //以下代码输出 0 1,当k等于2时跳出名为one的循环体,也就是最外层的循环,程序结束.
- one : for(int i = 0 ; i < 10 ; i++ ){
- two : for(int j = 0 ; j < 10 ; j++ ){
- three : for (int k = 0 ; k < 10 ; k++ ){
- if( k == 2 ){
- break one;
- }
- System.out.println(i+j+k);
- }
- }
- }