Java操作符及执行流程控制

发表于:2013-8-15 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李艺辉    来源:51Testing软件测试网采编

  三元操作符:

  boolean-exp ? value0 : value1

  如果布尔表达式boolean-exp为true则计算value0,否则计算value1

  控制执行流程

  关键字:Java控制执行流程主要涉及的关键字if-else、while、do-while、for、return、break、continue

  Java并不支持goto語句,但是在java中仍然保留了goto

  条件判断:所有条件判断都利用条件表达式的真或假来决定执行流程

  注意:java不允许将一个数字等非boolean值作为布尔值使用,如果要在布尔测试中使用一个非布尔值则首先必须用一个条件表达式将其转换成布尔值。

  Ex:a是非boolean类型值 if(a)×à  if(a!=0) √

  while:先判断条件表达在执行循环体,条件为false则一次都不执行

  do-while:先执行循环体,再判断条件表达式,因此至少会执行一次

  for语句:for(int  i = 1, j = 5;i < 5;i++,j = i+2)

  for语句初始化部分实际上可以定义任意数量的变量,注意:但是这些变量都必须是同一种数据类型

  for语句中可以使用一系列有逗号表达式分隔的语句

  增强行的for循环:for(char c : “hello world”.toCharArray())

  如果for循环有索引或是步进,则上述增强行的for循环不能够直接满足需求

  Think in java 建议自写一个range()方法配合增强型的for循环

import static net.mindview.util.range.* //此包需从www.mindview.com上下载
Ex:for(int i : range(10))     //range(10)返回数组,元素为0..9
for(int i : range(5,10))    //range(5,10)返回数组,元素为5..9
for(int i : range(5,10,3))  //range(5,10,3)返回数组,元素为5..10 step 3
while(true) = for(;;)
switch .. case...break语句:
switch(integral-selector)  //integral-selector:选择因子必需是int或是char那样的整数值
case integral-value1:statement:break;
//
Default:statement;

  单一case satatement后面需有break,避免case穿透到下一case statement

  return:指定一个方法的返回值,并退出该方法。

  如果一个方法声明有非void的返回值,那么必须确保每一条代码路径都将返回一个值

  break:终止当前循环体

  continue:停止循环体的当前迭代,然后退回循环起始处,开始下一次迭代

  goto:虽然java不再使用goto语句,但是依然保留了goto作为关键字

  在java中如果想实现goto一样跳转语句的功能可以使用标签编程

  请看如下demo:GotoLabel.java

package javabase.flowcontrol;

public class GotoLabel {
 /**
  *java标签编程应用
  */
 public static void main(String[] args) {
  int i = 0;
  outer: //此处不可以写其它的任何代码
     //System.out.println("outer man!");
   for(;true;){
    inner: //此处不可以写其它的任何代码
        //System.out.println("innter man!");
     for(;i<10;i++){
      System.out.println("i = " + i);
      if(i == 2){
       System.out.println("continue");
       continue;
      }
      if(i == 3){
       System.out.println("break");
       i++;
       break;
      }
      if(i == 7){
       System.out.println("continue outer");
       i++;
       continue outer;
      }
      if(i == 8){
       System.out.println("break outer");
       break outer;
      }
      for(int k = 0; k < 5; k++){
       if(k == 3){
        System.out.println("continue inner");
        continue inner;
       }
      }
     }
      System.out.println("hello world");
   }
  System.out.println("fuck in java");
 }
}
/*输出结果:
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
hello world
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
fuck in java
*/

  一般的continue会退回最内层循环的开头,并继续执行

  带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环

  一般的break会中断并跳出当前的循环体

  带标签的break会中断并跳出标签所指的循环

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号