控制语句可以让我们的代码具有逻辑性,条理性。
控制语句的种类
选择语句:if /switch
循环语句:for /while /do..while
转向语句:break /continue /return
选择语句
if
if(布尔表达式){
java语句;
java语句;
}
if(布尔表达式){
java语句;
java语句;
}
一个大括号{}叫做一个分支
if翻译为“如果”,叫做条件语句。
执行原理:如果布尔表达式判断为 true ,则执行大括号中的程序,否则不执行。
语法:2
if(布尔表达式){
java语句; 分支1
}else{
java语句; 分支2
}
执行原理:如果布尔表达式的结果为 true ,则执行分支1;分支2不执行
如果布尔表达式的结果为 false ,则执行分支2;分支1不执行
语法:3
if(布尔表达式1){
Java语句; 分支1
}else if(布尔表达式2){ 分支2
Java语句;
}else if(布尔表达式3){ 分支3
Java语句;
}else if(布尔表达式4){ 分支4
Java语句;
}else{
Java语句;
}
执行原理:判断布尔表达式1,结果为 true 执行分支1 ,语句结束; 结果为false,
判断布尔表达式2,布尔表达式2结果为true,执行分支2;结果为false,
判断布尔表达式3,布尔表达式3结果为true,执行分支3;以此类推。
如果布尔表达式结果都为 false ,执行 else 的分支语句;
注意:对于if 语句来说,只能有一个分支执行,并且在执行完后这个 if 语句就结束了。
if 语句的嵌套
控制语句和控制语句之间是可以嵌套的
分析外面的 if 语句,里面嵌套的控制语句在没有执行的时候就看做普通的Java代码(语句)
if (布尔表达式){
if(布尔表达式){
if(布尔表达式){
Java语句;
}
}
}else{
}
switch
语法格式
switch(值){
case 值1:
java 语句;
java 语句;
break;
case 值2:
java 语句;
java 语句;
break;
case 值3:
java 语句;
java 语句;
break;
default:
java 语句;
}
以上是一个完整的 switch 语句。其中 break;语句 default分支都不是必须的
执行原理:拿 “值”与“值1”进行比较,如果相同,则执行该分支;然后执行"break;"语句,结束。
如果不相同,与“值2”进行比较,如果相同,则执行该分支;然后执行"break;"语句,结束。
如果没有"break;",会发生 case击穿现象。
循环语句
循环语句是由循环体和循环终止组成,在实际写代码的过程中会有许多重复执行的语句。
这时候就可以用更好的方法:循环语句来实现。
比如下一段代码就可以用循环语句来使它更简洁,方便:
public static void main(String[] args) {
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
System.out.println("WDNMD");
}
要输出这么多的“WDNMD”一行一行敲很麻烦,如果更多的话就更麻烦,所以我们可以用
for while do...while 循环来实现。
for
for (int i = 0; i < 10; i++) {
循环体;
}
int i = 0 为初始表达式 初始化表达式在循环中最先执行,且执行一次。
i < 10 为布尔表达式 结果为 true 执行循环体,结果为 false 循环结束。
i++ 为更新表达式 为了更新变量的值,更新过后重新判断。
for循环的执行顺序是 1、初始表达式
2、布尔表达式
3、循环体
4、更新表达式
死循环
对于for循环来说,初始表达式,布尔表达式,更新表达式都不是必须的,当布尔表达式缺失的时候会形成死循环
for ( ; ; ) {
System.out.println("wdnmd");
}
这个循环语句就是死循环,会一直输出“wdnmd”
常见的for循环
for (int i = 0; i <= 10; i++) {
System.out.println(i);
}
输出结果为
0 1 2 3 4 5 6 7 8 9 10
来看这个循环,首先执行初始表达式:int i = 0;
然后判断 i <= 10 结果是否为 true (真)
结果为 true 执行循环体 打印 i = 0
再执行更新表达式,执行布尔表达式。如此循环执行
直到布尔表达式判断结果为 false 循环结束。
作用域
循环的作用域只在当前循环中有效(大括号内),在for 循环外是无法访问该变量。
public static void main(String[] args) {
int i = 0
for (; i <= 10; i++) {
}
System.out.println(i);
}
我们可以把 i 拿出来放到 main 方法里,这样就可以访问了。
while
语法:
while (布尔表达式){
循环体;
}
while 的结构非常简单:先判断布尔表达式的结果,为 true
执行循环体,再判断布尔表达式的结果,为 true
执行循环体,如此循环。直到布尔表达式结果为 false 循环结束
do..while
do{
循环体; 1
}while(布尔表达式) 2
执行顺序: 1——2(true)——1——2(true)——1——2(false)——循环结束
breakbreak; 在Java中是单独的一条Java语句,它可以用在 switch 中,用来终止 switch 的语句。
它重点是用在循环语句中用来跳出循环。
break 只能让终止距离它最近的当次循环
for(int j = 1; j <= 2; j++){
for(int i = 1; i <= 10 ; i++){
if(i == 5){
break;
}
System.out.println("i = " + i);
}
}
当 i == 5 时循环终止,所以5 不会输出;
i = 1 i = 2 i = 3 i = 4 i = 1 i = 2 i = 3 i = 4
continue
continue 和break 都是差不多,但break是终止循环。 continue是结束本次循环直接进入下次循环
for(int i = 1; i <= 10; i++){
if(i == 5){
continue;
}
System.out.println( i);
}
1 2 3 4 6 7 8 9 10
当 i ==5 时,直接跳过。所以输出结果没有5。



