流程控制语句

流程控制语句


今天我们来学习一下Java的流程控制语句,在学习之前,我们来了解一下什么叫做流程控制。流程控制简单的来说,就是在执行一件事情的过程中,让其在特定的条件下让其产生我们所期待的结果,也就是我们对其进行控制;

为什么要学习流程控制语句:流程控制语句可以让我们的代码更加的简洁,逻辑性更强

ps:如果有不正确之处,望各位看官不吝赐教,毕竟我还是菜鸟



多分支语句


If多分支

​ if多分支语句,属于条件控制语句,有三种格式:

  • 格式一:单if

    if(关系表达式){
        语句体;
    }
    
  • 格式二:if… else…

    if(关系表达式){
        语句体1;
    }else{
        语句体2;
    }
    
  • 格式三:多个if…else…

    if(关系表达式1){
        语句体1;
    }else if(关系表达式2){
        语句体2;
    }
    ...
    else{
         语句体n+1;
    }
    
  • 注意:无论if条件有多少个判断,语句体最终只有一个会执行。意思就是即使有多个条件匹配成功,也只会执行第一个匹配成功的条件;


switch多分支

​ switch也是一种多分支语句结构,但是它通常用来进行匹配数据,但是次数不易过多;

​ 匹配的数据类型可以是byte,short,int,char,字符串,枚举。

  • 格式:

    switch(表达式){
        case1:
            语句体;
            break;  // break的作用是直接退出switch的case匹配到default中去,如果没有
            		// break,那么就会一直执行下去,直到遇到break退出或switch执行结束
        case2:
            语句体;
            break;
        case3:
            语句体;
            break;
    
        default:
            语句体;
            break;  
    }
    
  • 注意:

    • 同一个switch语句中,case语句后面的数值是不能重复的,也就是意味着一个数据只能被匹配一次;
    • case穿透:在switch中,当有一个case条件被匹配成功,那么就不会在进行匹配后面的case条件,如果没有写break语句跳出,就会一直执行下去,直到遇到break语句;
    • 如果default写在前面,那么先执行default;
  • 与if的区别:

    • if不仅可以进行单个判断还可以进行范围判断,而switch只能进行单个的数值匹配

循环结构


​ 循环结构是为了解决重复代码的问题


for循环
  • 格式:

    for(初始化语句;条件判断语句;条件控制语句){
        循环体; // 我们执行的代码
    }
    
  • 执行流程:

    • 先执行初始化语句,只会被执行一次;
    • 执行条件判断语句,如果条件成立,执行循环体,如果条件不成立,结束整个循环;
    • 条件成立,执行循环体,再执行条件控制语句,进行循环,直到循环结束;

while循环
  • 格式:

    初始化语句;
    while(条件判断语句) {   
        循环体语句;
        条件控制语句;
    }
    
  • 执行流程:

    • 执行初始化语句;
    • 执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,继续执行;
    • 执行循环体语句;
    • 执行条件控制语句;
    • 回到2继续,直到while循环结束;

do…while
  • 格式:

    初始化语句;
    do {
        循环体语句;
        条件控制语句;
    }while(条件判断语句);
    
  • 执行流程:

    • 执行初始化语句;
    • 执行循环体语句;
    • 执行条件控制语句;
    • 执行条件判断语句,看其结果是true还是false,如果是false,循环结束,如果是true,继续执行;
    • 回到2继续,直到循环结束;

循环的一些小练习
/**
*	水仙花数:不知道什么是水仙花数的可以百度一下
*/
public static void main(String[] args) {
    // 遍历全部的三位数
    for(int i = 100; i < 1000; i++) {
        // 分别取出个位数,十位数和百位数
        int ge = i % 10;
        int shi = i / 10 % 10;
        int bai = i / 100;
        // 判断是否是水仙花数
        if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
            System.out.println(i);
        }
    }
}

---------------------------------------------------------------------------------

/**
*	打印9*9乘法表
*/
public static void main(String[] args) {
    // 外层循环控制行数
    for(int i = 1; i <= 9; i++) {
        // 内层循环控制列数
        for(int j = 1; j <= 9; j++) {
            System.out.print(j + "*" + i + "=" + (i * j) + "\t"); // \t是制表符
        }
        System.out.println();
    }
}

---------------------------------------------------------------------------------

/**
*	有一个容量为10L的空水桶。水桶的上面开始往里灌水,同时下面开始往出流水。
*	第一分钟灌水的速度是1L/min,第二分钟灌水的速度是2L/min,第三分钟灌水的速度是3L/min,
*	以此类推。而流水的速度固定是3L/min。那么几分钟之后,水桶里能保持灌满水的状态?
*/
public static void main(String[] args) {
    int minute = 1; // 灌水的时间
    int count = 0; // 水桶的初始容量
    while( count <= 10) {
        if( minute - 3 > 0) {
            count += minute - 3;
        }
        minute ++;
    }
    System.out.println(minute);
}

continue、break


continue
  • 作用:用在循环体中,表示退出这一次的循环,进行下一次循环,但是没有结束循环
break
  • 作用:用在循环体和switch中,表示结束循环或结束case语句;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值