就像有直觉的生物一样,程序必须在执行过程中控制他的世界,并做出选择。在java中你要使用执行控制语句来做出选择。
在java中,涉及的关键字包括if-else,while,do-while,for,return,break以及选择语言switch。java并不支持goto语句,但是仍然可以进行类似goto那样的跳转,比起典型的goto,有了很多限制。
1.true和false
所有条件语句都利用条件表达式的真或假来决定执行流程。注意:Java不允许我们将一个数字作为布尔值使用,虽然这在C和C++里是允许的。(与C和C++区别)
如果使用数字作为判断条件会报:Type mismatch: cannot convert from int to boolean
2.if-else
基本形式:
if(boolean-expression)
statement
或
if(boolean-expression)
statement
else
statement
3.迭代
while、do-while和for用来控制循环。有时将它们划分为迭代语句。
while循环的格式:
while(boolean-expression)
statement
do-while的格式:
do
statement
while(boolean-expression)
while 和do-while唯一的区别就是do-while中的语句至少会执行一次,即便表达式第一次就被计算为false。
for格式:
for(init;boolean-expression;step)
statement
4.Foreach语法
java SE5引入了一种新的更加简洁的for语法用于数组和容器,即foreach语法。
public class ForEach{
public static void main(String[] args){
Random rand=new Random(47);
float f[]=new float[10];
for(int i=0;i<10;i++)
f[i]=rand.nextFloat();
foreach(float x:f)
System.out.println(x);
}
}
注意:在foreach循环的时候,集合里面的值是不能改变的,否则会报错。
5.return
return关键词有两方面用途:一方面指定一个方法返回什么值,另一方面它会导致当前方法退出,并返回那个值。
如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return。
6.break和continue
break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次的迭代。
7.臭名昭著的goto
尽管goto仍是java中的一个保留字,但是在语言中并未使用它;java没有goto。但是java也可以实现一些类似的跳转,这与break和continue有关。
label1:
outer-iteration{
inner-iteration{
break;//(1)
continue;//(2)
continue label1;//(3)
break label1;//(4)
}
}
在(1)中,break中断内部迭代,回到外部迭代。在(2)中,continue是执行点移回内部迭代的起始处。在(3)中,continue label1同时终端内部迭代以及外部迭代,直接转到label1处,随后,它实际上是继续迭代过程,但却从外部迭代开始。在(4)中,break label1也会中断所有迭代,并回到label1处,但是并不重新进入迭代,也就是说完全中止了2个迭代。
8.switch
switch格式:
switch(integral-selector){
case integral-value1:statement;break;
case integral-value2:statement;break;
//.....
default:statement;
}
其中integral-selector(整数选择因子),必须是一个int或者char那样的整数值。