美文网首页
流程控制语句

流程控制语句

作者: hey_leex | 来源:发表于2017-11-22 20:49 被阅读0次

    流程控制语句

    顺序结构

    写在前面的先执行,写在后面的后执行

    选择结构

    if

    1. 当条件只有一对立面的时候

       if(关系表达式true){
           语句体;
       }
       if(关系表达式true)//不建议,代码可读性差
           语句体;
      
      1. 关系表达式无论简单还是复杂,结果必须是boolean类型
      2. if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略
      3. if结构后面没有分号;
    2. 当条件有两个对立面的时候

       if(关系表达式) {
            语句体1;
       }else {
            语句体2;
       }
      
      1. else否定离他最近的if
      2. 关系表达式true执行语句体1,false执行语句体2
      3. 三元运算符一定可以转换为if else语句,但if else语句不一定能转换为三元运算符
      4. 因为三元运算符必须要求有一个结果返回,如果语句体是一个输出语句就不能转换为三元运算符
    3. 当条件有多个对立面的时候

       if(关系表达式1) {
           语句体1;
       }else if (关系表达式2) {
           语句体2;
       }
       …
       else {
           语句体n+1;
       }
      
      1. 首先判断关系表达式1看其结果是true还是false

        如果是true就执行语句体1

        如果是false就继续判断关系表达式2看其结果是true还是false

        如果是true就执行语句体2

        如果是false就继续判断关系表达式…看其结果是true还是false



        如果没有任何关系表达式为true,就执行语句体n+1。

        //满足java的语法要求,不会报错
        int x = 100;
        if(100>100);
        {   
            System.out.println("哈哈哈");
        }
        ------------
        输出
        哈哈哈
    

    switch case

    switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
    }
    
    1. 格式
      1. expression:
        表达式的取值:byte,short,int,char
        JDK5以后可以是枚举
        JDK7以后可以是String
      2. case后面跟的是要和表达式进行比较的值
      3. 语句体部分可以是一条或多条语句
      4. break表示中断,结束的意思,可以结束switch语句
      5. default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
    2. expression依次与case进行比较,遇到匹配的case,开始执行语句以及后面case的语句直到遇到break;结束,否则执行到程序的末尾
    3. 如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
    4. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    5. default位置任意,一般放在最后,可以省略。一般不建议。除非判断的值是固定的。

    循环结构

    for

    for(初始化语句;判断条件语句;控制条件语句) {
         循环体语句;
    }
    
    1. 初始化语句,执行一次,可以创建一些循环中使用的初始变量,循环结束后释放

    2. 判断条件语句,每次循环都执行

    3. 控制条件语句,每次循环结束之后运行

    4. for中的三个条件都可缺省,但;(分号)不能少

    5. for循环中变量的作用范围

      for中的变量只在for循环中有效

       int i = 0;
       for (int i = 0; i < 5; i++) {//error:Duplicate local variable i
               int h = 0;//error:Duplicate local variable h
               int j = 0;
       }
       int h = 0;//不报错,可以再次声明
       int j= 0;
      
    6. for循环的嵌套一般不超过三层(超过三层说明方案有问题)

    while

    先进行判断,true则执行语句,然后返回再判断,false离开循环体

    基本格式
    while(判断条件语句) {
         循环体语句;
    }
    扩展格式
    初始化语句;
    while(判断条件语句) {
         循环体语句;
         控制条件语句;
    }
    

    for循环和while循环的区别

    1. 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
    2. 场景区别:
      • for循环适合针对一个范围判断进行操作
      • while循环适合判断次数不明确操作

    do while

    先执行do里面的语句,然后判断,true则返回do语句,false结束循环

    基本格式
    do {
         循环体语句;
    }while((判断条件语句);
    扩展格式
    初始化语句;
    do {
         循环体语句;
         控制条件语句;
    } while((判断条件语句);
    
    1. 三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
      • do…while循环至少会执行一次循环体。
      • for循环和while循环只有在条件成立的时候才会去执行循环体
    2. 写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。

    跳转控制语句

    注意break continue return执行之前的语句都会执行,只影响执行之后的语句

    break

    结束循环

    • 不带标签的break:跳出当前循环
    • 带标签的break:跳出标签处的循环
    1. break的使用场景:
      • 在选择结构switch语句中
      • 在循环语句中
      • 离开使用场景的存在是没有意义的
    2. break的作用:
      • 跳出单层循环
      • 跳出多层循环
        • 带标签的跳出
        • 格式:标签名: 循环语句
        • 标签名要符合Java的命名规则

    //带标签的break:跳出外层循环
    back:{
            for (int i = 0; i < 10; i++) {
                for (int j = 0; j < 10; j++) {
                    if(j == 6) {
                        break back;//跳出外层循环
                    }
                    System.out.print(j+i+"\t");
                }
                System.out.print("\n");
            }
        }
    //---------------------------------------------------
    back:for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            if(j == 6) {
                break back;//跳出外层循环
            }
            System.out.print(j+i+"\t");
        }
        System.out.print("\n");
    }
    

    continue

    跳过当前循环

    1. continue的使用场景:
      • 在循环语句中
        -离开使用场景的存在是没有意义的
    2. continue的作用:
      • continue 退出本次循环,跳到循环的下一次

    //带标签的continue:跳过外层本次循环,进入下一次
    back:for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            if(j == 6) {
                continue back;//跳过外层本次循环,进入下一次
            }
            System.out.print(j+i+"\t");
        }
        System.out.print("\n");
    }
    

    return

    离开方法

    1. 存在分支时,每一条分支都要有return

    相关文章

      网友评论

          本文标题:流程控制语句

          本文链接:https://www.haomeiwen.com/subject/qkgovxtx.html