先引用老外的一句话:“Like a sentient creature,a program must manipulate(巧妙的控制) its world and make choices during execution.In Java you make choices with execution control statements.”
Java使用C中的所有控制语句,许多过程编程语言有一些控制语句,各语言之间的控制语句又有一定的区别。在Java控制语句主要包括 if-else、while、do-while、for、return、break、switch(选择语句),Java中不支持 goto 语句,尽管有的时候可以它可以很好的进行结构流程控制。
true and false
true/false 通常用做if、while语句的判断条件,由一个表达式来产生true 或false值,以此来决定执行的路径。注意在Java中不允许把一个数字当做boolean型来使用(在C and C++允许这样做,true表示非“0”值,false表示是“0”)。
if-else
if-else是最基本的控制语句,表达式中的else是可选的。主要有以下两种形式:
if(Boolean-expression) statement
或者是:
if(Boolean-expression) statementelse statement
条件判断表达式Boolean-expression必须产生一个Boolean型的结果,statement可以是简单的语句,也可以是由简单语句组成的代码块。下面是一个if-else的简单的例子。
1-1 if-else简单的例子
//: control/IfElse.javaimport static net.mindview.util.Print.*;public class IfElse { static int result = 0; static void test(int testval, int target) { if(testval > target) result = +1; else if(testval < target) result = -1; else result = 0; // Match } public static void main(String[] args) { test(10, 5); print(result); test(5, 10); print(result); test(5, 5); print(result); }}
程序运行的部分截图结果如下:
注:
代码
1 | import static net.mindview.util.Print.*; |
已经在前面的文章中说明,可以参看
Iteration(循环)
Java中的循环控制主要有while、do-while、for,statement重复执行,直到条件判断语句Boolean-expression为false。
while循环的格式如下:
while(Boolean-expression) statement
Boolean-expression在循环刚开始时先进行判断,以后在每次循环之前先对其进行判断,若为false,则结束循环。
1-2 while循环的例子
//: control/WhileTest.java// Demonstrates the while loop.public class WhileTest { static boolean condition() { boolean result = Math.random() < 0.99; System.out.print(result + ", "); return result; } public static void main(String[] args) { while(condition()) System.out.println("Inside 'while'"); System.out.println("Exited 'while'"); }}
程序运行的结果如下:
do-while
do-while控制语句的形式如下:
do statementwhile(Boolean-expression);
注意:
do-while语句至少执行一次,而不管Boolean是否为true。
在while循环中,如果Boolean为false,那么循环就不会执行。
在实际使用中while比do-while更常见。
for
for循环式最常见的循环,也是使用最多的循环控制语句,for相对变量初始化,然后是条件判断,最后是修改变量的值。for语句的格式如下:
for(initialization;Boolean-expression;step) statement
for循环语句中的initialization、Boolean-expression、step都可以为空。for循环一般用作计数(counting)中或是已明确循环的次数程序中。下面是一个简单的例子。
1-3 for循环的例子。
//: control/ListCharacters.java// Demonstrates "for" loop by listing// all the lowercase ASCII letters.public class ListCharacters { public static void main(String[] args) { for(char c = 0; c < 128; c++) if(Character.isLowerCase(c)) System.out.println("value: " + (int)c + " character: " + c); }}
程序运行的部分截图如下:
注:文章的代码摘自 Thinking in Java(Fourth Edition)英文版,作者 [美]Bruce Eckef,刘中兵 评注。