疯狂Java笔记:4.1 流程控制

4.1 顺序结构

顺序结构:程序从上到下逐行的执行,中间没有任何判断和跳转。

public class ProcessTest{
    // Java方法中的语句就是顺序结构,从上到下的执行
    public static void main(String args[]){
        System.out.println("顺序结构:我是第一个被执行的");
        System.out.println("顺序结构:我是第二个被执行的");
        System.out.println("顺序结构:我是第三个被执行的");
    }
}

4.2 分支结构

4.2.1 if 条件语句

if 条件语句使用布尔表达式作为分支条件来进行分支控制

public static void ifTest(){
    char age=80;
    // 使用if……else语句时,一定要先处理包含范围更小的情况
    if(age>60){
        // 条件执行体[代码块通常被当成整体执行,要么都执行要么都不执行]
        // 代码块中有 return,break,continue,异常 则例外
        System.out.println("老年人");
        System.out.println("如果楼上执行了,我也会被执行!");
    }else if(age>40){// 0或多个else if 语句
        System.out.println("中年人");
    }else if(age>20){
        System.out.println("青年人");
    }else{// // 0或多个else语句
        System.out.println("少年");
    }
}

4.2.2 switch 语句

switch语句运行流程:先求表达式,和case比较,一旦值相等即执行其后代码,直到全部执行完毕或遇见break,所以没有break将全部被执行。

public static void switchTest(){
    char score='C';
    // 控制表达式,只支持 byte、short、char、int、String、枚举类型,不支持 boolean、StringBuffer、StringBuilder等
    switch(score){
    //  case TRUE:// 枚举类型
    //  case "优秀":// String
    //  case 1:// int
        case 'A':// char
            System.out.println("优秀");
            break;
        case 'B':
            System.out.println("良好");
            break;
        case 'C':
            System.out.println("中等");
            break;
        case 'D':
            System.out.println("及格");
            break;
        case 'E':
            System.out.println("不及格");
            break;
        default:
            System.out.println("成绩输入错误");
    }
}

4.3 循环结构

循环的一般结构:

  • 初始化语句:完成初始化工作,在循环开始之前执行
  • 循环条件:boolean 表达式,决定是否执行循环体
  • 循环体:循环主体,循环条件允许则该代码块被重复执行
  • 迭代语句:一次循环体执行结束后,对循环条件求值之前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束

4.3.1 while 循环条件

// 1、循环初始化语句
int count=0;
// 2、循环条件:count<5
while(count<5){// 3、循环体
    System.out.println(count);
    // 4、迭代语句,迭代语句总位于循环体最后
    // 只有当循环体能够被成功执行完成时,才会执行迭代语句
    count++;
}

4.3.2 do while 循环语句

while 先判断循环条件,为真则执行循环体

do while 则先执行循环体,再判断循环条件,为真则执行下一次循环

int count=5;
// do while至少执行一次循环体
do{
    System.out.println(count);
    count--;
}while(count>5);//必须有分号表示循环结束

4.3.3 for 循环

  • 大部分情况下可替代 while或do while 循环
  • 注意:不要在循环体内修改循环变量[循环计数器],否则程序可能出错。可定义临时变量供访问修改
// 最基本的合法for循环[死循环]
    // for(;;);
    // System.out.println("楼上傻逼死循环,我也很绝望啊");

// 普通for循环
    //1、循环条件总比 循环体/迭代语句 多执行一次
    //2、允许同时指定多个初始化语句,这些变量应该具有相同类型[即只能有一个声明语句]
    for(int count1=0,max=5;count1<max;count1++){
        System.out.println(count1);
    }  

// foreach循环
    // foreach循环自动遍历数组和集合的每个元素,无需获得数组/集合的长度,无需根据索引访问元素
    String[] strs={"Java","php","ruby"};
    for(String str:strs){
        // foreach循环用于遍历元素,不推荐对循环变量赋值,没有实际意义且容易引起错误:
        // str只是临时循环变量,不是实际数组的元素,重新赋值不能改变实际数组元素的值,且导致遍历失败。
        str="c++";
        System.out.println(str);
    }

4.3.4 嵌套循环

外层循环将内层循环当成循环体一部分

int i;
System.out.println("九九乘法表");
for(i=1;i<10;i++){
    for(int j=1;j<=i;j++){
        System.out.print(j+"X"+i+"="+i*j+"\t");
        if(i==j){
            System.out.println();
        }
    }
}

4.4 控制循环结构

Java 不提供 goto 语句来控制程序跳转–提高程序流程控制的可读性,但降低了程序的灵活性

为弥补不足,提供了 continue 和 break 来控制循环结构,return也能结束整个方法[也就结束了循环]

4.4.1 使用 break 结束循环

  • break 用于强制终止一个循环,跳出循环体,执行循环之后的代码
  • break 可通过紧跟一个标签[标识外层循环,放在循环语句之前]来直接结束其外层循环
outer:// 这是标签,用于标识外层循环,供break跳出
for(int i=0;i<5;i++){
    for(int j=0;j<3;j++){
        if(j==1) break;// 跳出当前循环
        if(i==3){
            break outer;// 直接跳出外层循环
        }
        System.out.println("i="+i+"\t"+"j="+j);
    }
}
System.out.println("这是break跳出循环体后执行的语句");

4.4.2 使用 continue 忽略本次循环剩下语句

  • continue 忽略本次循环剩下的语句,接着开始下一次循环,并不会终止循环。
  • continue 也可以紧跟一个标签,用于跳过标签所标识循环的当成循环的剩下语句,重新开始下一次循环
outer1:
for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
        if(j==1) continue;
        if(i==3){
            continue outer1;
        }
        System.out.println("i="+i+"\t"+"j="+j);
    }
}
System.out.println("continue控制循环结束后执行的语句");

4.4.3 使用 return 结束方法

  • return 并非专门用于结束循环,而是结束方法。
  • 当一个方法执行到 return 语句时,该方法被结束,循环也就随之结束
  • 其后可跟变量,常量,表达式,分号。示例:return ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值