Java 控制执行流程

来源:互联网 发布:关系型数据库原理 编辑:程序博客网 时间:2024/04/30 01:06

复习Java控制语句,先做一个简单的整理结构。


一、判断条件
1. 只支持结果是true或false,不支持0和1(C/C++支持)。例如: 2==2
2. 短路计算,即第一个返回false的情况下不执行后续判断


二、 if else


三、 循环语句(迭代)
1. while
     语义 while 当满足。。 执行 。。(后续代码)
     控制流程后一行 if 如果没有{},直接运行if后一行代码。
2. do while
     无论是否满足while判断,先执行一次do循环体
3. for 与 foreach
?     * size、 length(判断执行了多少次 , 通常在for中使用



四、无条件分支语句(Code)
1. return - 跳出方法体,不执行后续的代码
含义:1 方法返回值  2 退出当前方法
2. break - 跳出循环,不执行后续的代码
3. continue - 跳出此次循环,执行循环体后续代码

? try中使用无条件分支语句(?在try语句中出错




五、标签(goto )

循环标签
break跳出while循环,执行后续的代码
private static void loopBreak() {
              labelA: while(true ) {
                     
                     System. out.println("break loop start" );
                     
                            while(true ) {
                                   // 跳出标记处的循环
                                   break labelA;
                           }
                     }
               // 此行代码还是会执行
              System. out.println("break loop end" );
       }



continue
continue语句只能应用在for、while和do...while循环语句中,用于让程序直接跳过其后面的语句,进行下一次循环。

跳出离continue最近的第一层循环。

? 是不是可以不使用标签。 使用多态? 加一个Control?


六、switch
switch 语义 用户处理若干离散的整型或字符类型的值。
一般记得使用default,这样没考虑到的因素,都会执行default操作。容错,default中做异常处理。

?  switch能否缺失break语句?


整体:
* 缩进
* 循环体只有一句,也加{}
* 每中控制语句,至少十种写法




资料:
Java编程思想 第4章
代码阅读


扩展:
你还在用if else吗?
http://www.jdon.com/artichect/ifelse.htm

== 与equals
如何减少代码中的分支语句
http://www.cnblogs.com/bastard/archive/2012/08/08/2627939.html


switch 替换方案  查表发(数组)





边界值问题


通常是在判断的时候会遇到边界值的问题
一 
for(int i=0; i<5; i++) {
  // 循环体中的内容
}
for(int j=5; j>0; j--){
  // 循环体中的内容
}

问题:
1. 循环题中的内容执行几次?
都是5次
2. i,j的值分别是多少?
i -- 0,1,2,3,4(最后一次判断,i等于5, i<5为假)
j -- 5,4,3,2,1(最后一次判断,i等于0, i>0为假)


二 

String str = "中文";System.out.println("\"中文\"长度:" + str.length()); // "中文"长度:2String[] strArr = {"1", "2", "3"};System.out.println("{\"1\", \"2\", \"3\"}长度:" + strArr.length);// {"1", "2", "3"} 长度:3List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");System.out.println("list三个元素,长度:" + list.size());// list三个元素,长度:3


集合的size和字符串的length都是实际的个数,而从中取的时候需要减1,因为索引是从0开始的。





2013-04-22  添加扩展
2014-01-05  与控制执行流程文章合并




2013-04-22  添加扩展