一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句。
接下来分三部分介绍Java的控制流语句,他们是判断语句(if-then
, if-then-else
, switch
),循环语句(for
, while
, do-while
)和跳转语句(break
, continue
, return
)。
1.true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。
Java不允许使用数字作为布尔值使用。
如果想在布尔测试中使用一个非布尔值,如if(a),那么首先必须使用一个条件表达式将其转换成布尔值,如if(a!=0)。
2.if-else
if-else是控制流中的罪基本形式,其中else是可选的,所以可按下两种形式来使用if:
if(Boolean-expression)
statement
或者
if (Boolean-expression)
statement
else
statement
3.迭代
1)while
while(Boolean-expression) //Boolean-expression为真,执行statement statement
2)do-while
do statement while(Boolean-expression) //Boolean-expression为真,执行statement
与while唯一区别在于do-while中的语句至少会执行一次。
3)for
for(initialization; Boolean-expression; step) statement
for语句中,先执行initialization语句,然后判断Boolean-expression结果是否为true,为真则执行statement,接下来会执行step,再次对Boolean-expression结果进行判断,如此循环,直到Boolean-expression结果为false。
for中的initialization和step可以是逗号表达式,这也是Java唯一用到逗号操作符的地方。此外,在initialization部分可以对多个同类型的变量进行定义。
4.foreach语法
import java.util.* public class ForEachFloat{ 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(); for(float x:f) System.out.println(x); } }
5 return
return关键词有两个作用:
a.指定一个方法返回什么值;
b.导致当前方法退出,并返回那个值。
6.break和continue
break:强制退出循环,不执行循环中剩余的语句。
continue:停止执行当前的迭代,然后退回循环其实处,开始下一次循环。
7 goto 不写的 一个程序随着标签的增多,产生的错误也会越来越多。
8.switch
switch语句像是匹配执行的语句。switch后的括号内的数据类型可以是基础类型中的byte,short,char,和int。也可使用枚举类型和String(字符串),封装了基础类型的Character,Byte,Short,Integer。其用法如下代码所示:
public class SwitchDemo { public static void main(String[] args) { int month = 8; String monthString; switch (month) { case 1: monthString = "January"; break; case 2: monthString = "February"; break; case 3: monthString = "March"; break; case 4: monthString = "April"; break; case 5: monthString = "May"; break; case 6: monthString = "June"; break; case 7: monthString = "July"; break; case 8: monthString = "August"; break; case 9: monthString = "September"; break; case 10: monthString = "October"; break; case 11: monthString = "November"; break; case 12: monthString = "December"; break; default: monthString = "Invalid month"; break; } System.out.println(monthString); } }
switch语句的主体又被称为switch代码块,switch代码块内可以多个case标签标记的代码,default标签可有可无,它表示如果没有匹配的结果,则执行default标记的代码,注意break的作用,如果没有break,则从匹配的case开始,switch代码块内的所有代码都会被执行。