zoukankan      html  css  js  c++  java
  • (二)Java控制执行流程

    一、块作用域

    由一对花括号括起来的若干条简单的Java语句构成一个基本的块作用域,一个块中也可以存在一个内部的块。

    二、条件判断

    1、if 判断

    (1)、if ( boolean-exp ) { statement }

    boolean-exp为true执行这个块中的statement,否则不执行,直接跳过。

    (2)、if ( boolean-exp ) { statement1 } else { statement2 }

    boolean-exp为true执行 statement1语句块,否则执行 statement2语句块。

    (3)、if ( boolean-exp1 ) { statement1 } else if ( boolean-exp2 ) { statement2 }... else if( boolean-exp-n ) { statement-n } else { statement-final }

    boolean-exp1为true执行statement1语句块,跳过后面的条件判断和语句块; 若boolean-exp1为false,boolean-exp2为true执行statement2语句块,跳过后面的条件判断和语句块;以此类推。如果所有的if后的布尔表达式都为false,则执行最后的statement-final语句块,没有else语句块则不执行任何语句。

    2、多重选择 switch 语句

    switch( 表达式 ){case 表达式1:语句1;case表达式2:语句2;...;case表达式n:语句n;default:语句n+1;}

    表达式与表达式n匹配时,执行表达式n,和所有的case后面的表达式都不匹配时,执行default后的默认语句。默认每个case的表达式都判断一次是否匹配。可以在表达式对应语句后面使用break;执行到break语句可以跳出这个switch结构,不再执行这个switch结构中break后面的语句。

    三、循环迭代

    1、while 循环:while ( boolean-exp ) { statement }

    先判断布尔表达式是否为true,如果为true,执行statement语句并进入下一次循环,否则退出这个循环体。每次循环先判断布尔表达式的值,布尔表达式为true后再执行statement语句。

    2、do while 循环:do { statement } while (boolean-exp)

    先执行statement语句块,再判断布尔表达式是否为true,如果为true,并进入下一次循环,否则退出这个循环体。每次循环先执行statement语句块,再判断布尔表达式的值。

    3、for 循环: for (初始化语句;布尔表达式;步进语句) { statement }

    初始化语句先执行(这个初始化语句只会执行一次;后面的循环迭代中不再初始化),再判断布尔表达式是否为true,为true则执行statement循环体和步进语句并进入下一次循环,为false时退出循环。

    4、forecah循环:for(变量类型  变量 : 变量元素集合) { statement }

    将集合中的每一个元素依次 赋值给变量 并执行一次statement语句块。  

    5、循环跳出中断语句

    (1)、break:跳出break这层循环块,不执行循环后面语句,终止循环。

    (2)、continue:跳出本次循环,不再执行循环体后面的语句,(for循环迭代先执行步进语句)进行下一轮循环判断。

    (3)、break标签和continue标签: 

    break标签:标签只能用在   break + 标签名  所在的循环块或所在的循环块的外部循环块之前。 如  label: for () { break label; }  或者  label:  for (){  for () {  break label;} }

    执行  break label;直接中断循环并跳出到  label:不再执行lael后的循环体,终止了循环。主要用来中断多层嵌套循环,而break语句只能中断break语句所在的这层循环体的循环迭代。

    代码示例与输出结果:

     public static void main(String[] args) {
           label:
           for(int i=1;i<5;i=i+1){
               for(int j=1;j<5;j++) {
                   System.out.println("正在执行外层循环第 "+i+" 次迭代" + "  内层循环第 "+j+" 次迭代");
                   break label;
               }
           }
        }
    View Code

    continue标签:标签只能用在  continue+ 标签名  所在的循环块或所在的循环块的外部循环块之前。 如  label: for () { continue lebel; }  或者  label:  for (){  for () {  continue lebel;} }

    执行  continue label;直接中断循环并跳出到  "label:"  并对  "label:"  下面的循环体直接进行下一次迭代。主要用来退出内层循环,并直接对外层循环进行迭代。 而continue语句只能退出continue语句所在的这层循环体,对这层循环体进行下一次迭代。

    代码示例与输出结果:

    1  public static void main(String[] args) {
    2        label:
    3        for(int i=1;i<5;i=i+1){
    4            for(int j=1;j<5;j++) {
    5                System.out.println("正在执行外层循环第 "+i+" 次迭代" + "  内层循环第 "+j+" 次迭代");
    6                continue label;
    7            }
    8        }
    9     }
    View Code

  • 相关阅读:
    [CFNews] EnCase v7更新至7.05.1
    [CFNews] Guidance 发布EnCase v7.05和EnCase Portable v4.1
    [CFNews] 首届国际电子数据取证调查会议将于9月21日在北京召开
    [转载] iPhone 5 forensics – prepare to be assimilate
    [CFNews] Oxygen Forensic Suite发布4.6
    [Ext]在按钮栏添加Checkbox
    [转]动态改变图片的useMap属性导致IE假死或崩溃!
    [转]Custom Configuration Section Handler in .NET 2.0
    判断当前的网络状态(C#)
    自定义配置节示例(.NET 2.0)
  • 原文地址:https://www.cnblogs.com/jianguan/p/14466824.html
Copyright © 2011-2022 走看看