疯狂Java笔记:4.1 流程控制

来源:互联网 发布:初中语文老师知乎 编辑:程序博客网 时间:2024/05/30 05:09

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<5while(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