break在if语句中的作用_流程控制语句

控制语句

控制语句分为三类:顺序语句,选择语句和循环语句。

1. if条件判断结构

1.1if单分支结构

语法结构: 
if(条件表达式){ 
    语句块 
}
  • if中的“条件表达式”返回的数据类型必须是boolean类型。
  • 当“条件表达式”返回的结果为true时,才会执行if{}中执行的代码
  • “选择执行”也包含在“顺序执行”中的。

1.2 if双分支结构

语法:
if(条件表达式) {
    // 当“条件表达式”为true时,需要执行的代码
}else {
    // 当“条件表达式”为false时,需要执行的代码
}
  • if中的“条件表达式”返回的数据类型必须是boolean类型。
  • 当“条件表达式”为true时,执行if{}中的代码;当“条件表达式”为false时,执行else{}中的代码。
  • if双选结构,有且只能执行一个{}中的代码。

1.3 if多分支结构

语法:
if(条件表达式1) {
    // 当“条件表达式1”结果为true时,需要执行的代码
}else if(条件表达式2) {
    // 当“条件表达式2”结果为true时,需要执行的代码
} else if(条件表达式3) {
    // 当“条件表达式3”结果为true时,需要执行的代码
}
...
else {
    // 当以上条件表达式都不成立的时候,需要执行的代码
}
  • if中的“条件表达式”返回的数据类型必须是boolean类型。
  • 如果if中某一个“条件表达式”成立,则执行该if{}中的代码,该if{}中的代码执行完毕后执行if多选结构之后的代码
  • 如果if中所有的“条件表达式”都不成立,则执行else{}中的代码。
  • 一个完整的多选结构,有且只能执行一个{}中的代码。
  • if, 不能省略,有且只能有一个;else if, 可以省略,可以有任意多个。else, 可以省略,最多只能有一个。

1.4总结

  1. 如果if选择结构只需执行一条语句时,那么可以省略{};如果需要执行多条语句,那么就是不能省略{}。为了提高代码的易读性,建议不要省略{}。
  2. {}中的代码语句也称为代码块,在代码块定义的常量或变量的作用域仅限于代码块中,在代码块之外不能被使用。
  3. 能用if多选择结构就不要用if单选择结构,因为if多选择结构的效率要高于if单选择结构。
  4. 在if选择结构中还可以嵌套别的选择结构或循环结构。

2. switch多分支结构

语法:    
swtich(表达式) {
    case 常量1:
        // 需要执行的代码
        break;
    case 常量2:
        // 需要执行的代码
        break;
    case 常量3:
        // 需要执行的代码
        break;
    ....
    default:
        // 以上case都不匹配的时候,需要执行的代码
        break;
}
  • switch中的“表达式”必须是:byte、short、int、 char、String(JDK7)、枚举(后面学习)。
  • case后面接的必须是常量,不允许是变量。case后面的常量的数据类型必须和“表达式”的数据类型保持一致switch中的case后面不能是条件判断|区间判断,因为“表达式”不支持boolean类型。在同一个switch结构中,case后面不允许有相同的常量值。
  • 执行break语句,作用就是用于跳出switch语句。
  • 当switch选择结构中所有的case都不匹配的时候,才会执行default中的语句。(switch中的case和default不区分先后顺序。)

总结:当条件表达式是等值判断的情况,可以使用 if-else if-else 多分支结构或者 switch 结构,如果条件表达式是区间判断的情况,则只能使用 if-elseif-else 多分支结构。

3. for循环结构

语法结构: 
for(循环初始化表达式; 循环条件表达式; 循环后的操作表达式) {
    // 循环体  
}

for循环执行顺序总结:

  • "循环初始化表达式”最先执行,并且只执行了一次。
  • 如果“循环条件表达式”成立,则执行循环体;如果“循环条件表达式”不成立,则跳出循环。
  • “循环体”执行完毕以后,立刻执行“循环后的操作表达式”
  • “循环后的操作表达式”执行完毕以后,立刻执行“循环条件表达式”

注意:

  • 在“循环初始化表达式”中声明的“循环变量”属于局部变量,只能在当前循环中使用。
  • 最后一趟循环执行完毕以后,会立刻执行“循环后的操作表达式”,然后再执行“循环条件表达式”。
  • 如果想要在循环体中操作同一个变量,那么应该把该变量声明放在循环之外(前面),这样在循环体中使用的就是同一个变量了
  • 循环条件表达式”返回的结果必须是boolean类型,如果省略“循环条件表达式”那么默认值为true。

85bcf0eea80f9c20061b9b4a8ce1e8f1.png

4.while循环

语法:
while(循环条件表达式) {
    // 循环体
}

当“循环条件表达式”为true时,即执行循环体。

注意:

  • 当while循环体执行完毕,会直接跳转去执行判断“循环条件表达式”是否成立,如果成立则执行“循环体”,否则跳出循环 。
  • 在while循环中,“循环后的操作表达式”放的位置不同,难么最终输出的结果也会不一样!

4.1 while与for的区别

for循环能做的事情while循环都可以实现,使用循环的时候for和while都可以选择。

建议以下条件使用while循环:

  • 循环结束后循环变量还需要参与运算,那么建议使用while循。
  • 不确定循环次数的时候,建议使用while循环。

5. do...while循环

语法:
 do {
    // 循环体  
} while(循环条件表达式);

对比while循环,do...while循环时“先执行,后判断”。

死循环:循环一直执行,永远无法停止。for(;;){} while(true){}

6. break、continue、return

6.1 break关键字

适用场合:switch、循环(for、while、do...while)

break的作用:

在switch中使用,跳出switch语句,执行switch语句之后的代码。

在循环中使用,用于跳出当前循环,后续循环不再执行。执行循环外的代码。

6.2 continue关键字

使用场合:只能在循环中使用(for循环、while循环、do...while循环)

continue的作用:

跳出本趟循环,继续执行后续循环。

6.3 return关键字

return的作用:1、结束当前方法。2、返回一个值

break与return的不同点:break跳出循环,执行循环外的代码。return跳出方法,不执行后续代码。

注意:在break、continue和return关键字后面不要书写任何代码,因为书写的代码无法执行。

6.4 带标签的break,continue

步骤:

第一步:给外侧循环取一个名字, Outer:for(int i = 1; i < 10; i++) {}

第二步:在需要跳出循环的位置,书写代码为:break Outer;

Outer:for(int i = 1; i < 10; i++) {
            System.out.println("外侧,i=" + i);
            for(int j = 1; j < 5; j++) {
                if(j == 2) {
                // 需求:需要在内侧循环中跳出外侧循环,使用break作用于外侧循环上面
                    break Outer; // 跳出外侧循环
                }
                System.out.println("--内侧,j=" + j);
            }
}
Outer:for(int i = 1; i < 10; i++) {
            System.out.println("外侧,i=" + i);
            for(int j = 1; j < 5; j++) {
                if(j == 2) {
                    // 需求:需要continue作用于外侧循环上面
                    continue Outer;
                }
                System.out.println("--内侧,j=" + j);
            }
        }

建议:带标签的break,continue在开发中一般不去使用。

7. 嵌套循环

嵌套循环:在一个循环语句内部再嵌套一循环或多个循环

//外侧循环,控制行数,
for(int i = 1;i <= 9;i++){
    //内侧循环,控制列数(每一行有多少列)
    //内侧循环里i执行一次,j做一个循环。
    for(int j = 1;j <= i;j++){
        System.out.print(j + "*" + i + "=" + j*i + "t");
    }
    System.out.println();
}
  • while、do-while与for循环可以任意嵌套多层。
  • 多重循环执行过程:外层循环变量变化一次,内层循环变量要变化一遍 。
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值