Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

java基础(三)之控制流程执行

2017-06-10
nivelle

控制流程执行

true和false

所有条件语句都利用条件表达式的真或假来决定执行路径。java不允许将一个数字作为布尔值使用,如果想使用一个非布尔值,比如在if(a)中,那么首先必须用一个条件表达式将其转换成布尔值。例如if(a!=0)

if-else

最基本的基本形式。其中else是可选的,所以可以按照下述两种形式来使用if:

if(Boolean-expression)
statement;
或者
if(Boolean-expression)
statement;
else
statement

迭代

while、do-while和for用来控制循环,有时划分为迭代语句。语句会重复执行,直到起到控制作用的布尔表达式得到“假”的结果为止。

while循环的格式如下:
while(Boolean-expression){
    statement;
}

在循环开始的时候,会计算一次布尔表达式的值,而在语句的下一次迭代开始前会再计算一次。

do-while
do
statement
while(Boolean-expression)

它与while的唯一区别是,do-while一定会执行一次,即使表达式第一次就被计算为false。

for

for循环可能是最常见的迭代形式,这种在第一次迭代之前就要进行初始化。随后,它会进行条件测试,而且在每一次迭代借宿,进行某种形式的“步进”:

for(initialization ;Boolean-expression;step)
statement

初始化表达式、布尔表达式或者步进运算都可以为空。每次迭代前会测试布尔表达式。若获得的结果是false,就会执行for语句后面的代码行。每次循环结束,会执行一次步进。

逗号操作符

java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句;而且那些语句均会独立执行。

for(int i=1,j=i+10;i<5;i++,j=i*2){
    System.out.println("i="+i+"j="+j);
}

无论在初始化还是步进部分,语句都是顺序执行的。此外,初始化部分可以有任意数量的同一类型的定义。

Foreach

表示不必创建int变量取访问项构成的序列进行计数,foreach将自动产生没一项。用于数组和容器。

  • 任何一个返回数组的方法都可以使用foreach.

  • foreach还可以用于任何Iterable对象。

return

java中表示无条件分支,它们只是表示这个分支无需任何措施即可发生。

  • return:一方面指定一个方法返回什么值,另一方面它会导致当前的方法退出,并返回那个值。

如果在返回void的方法中没有return,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须有一个return语句。如果一个方法申明它将返回void之外的其他东西,那么必须确保每一条代码路径都将返回一个值。

  • break

用于强制退出循环,不执行循环中剩余的语句。break 会中断for循环,而且在抵达for循环的末尾之前,递增表达式不会执行。由于break跳过了递增表达式。

  • continue

停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。

  • 一般的continue会退回最内层循环的开头(顶部),并继续执行。

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

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

  • 带标签的break会中断并跳出标签所值的循环。

在java里需要使用标签的唯一理由是因为有循环的嵌套存在,而且想从多层嵌套中break或continue。

switch

switch有时也被划归为一种选择语句,根据整数表达式的值,switch语句可以从一些列代码中选出一段去执行。

switch(integral-selector){
  case integral-value1:statement;break;
  case integral-value2:statement;break;
  case integral-value3:statement;break;
  case integral-value4:statement;break;
  default:statement;
}

其中,Integral-selector(整数选择因子)是一个能够产生整数值的表达式,switch能将这个表达式的结果与每个integral-value(整数值)相比较。若发现相符的,就执行对应的语句(单一语句或多条语句,其中并不需要括号)。若没有发现相符的,就执行default(默认)语句。

case语句的break将会跳转到switch主体的末尾。default子句没有break,因为已经到了其他break的跳转目的地。

选择因子:必须是int或char那样的整数值。假如将一个字符串或者浮点数作为选择因子使用,那么它们在switch语句里是不会工作的,对于非整型数型,则必须使用一些列if语句。其中enum可以和switch协调工作。


上一篇 编程中的数学

评论