就像有知觉的生物一样,程序必须在执行过程中控制他的世界,并做出选择。在Java中你要使用执行控制语句来做出选择。
1. true和false
Java不允许将一个数字当做布尔值用。如果想在一个测试中使用布尔值,就必须向将其通 过条件表达式转换为布尔值。
2 .if-else
3 .迭代
1).while、do-while和for用来控制循环,将他们划分为迭代语句。
程序举例:
/**
*<ol>
*<li>Java 编程思想 第四版 第四章 练习4
*<li>题目:写一个程序,使用两个嵌套的for循环和取余操作符%来探测和打印素数。
* @author RobortZhao
* @version 1.0
*/
public class PrimeNumber {
public static void main(String[] args) {
int i,j;
for(i = 2; i < 100; i++ ) {
for(j = 2; j <=Math.sqrt(i); j++ ) {
if((i % j) == 0) break;
}
if(j>Math.sqrt(i))
System.out.println(i);
}
}
}
2).逗号操作符:只能在for循环的控制表达式里使用。通过使用逗号操作符,可以在for语句内定义多个相同类型的变量。
4 .Foreach 语句
for(float x: f) 这条语句定义了一个float类型的变量x,进而将f数组中的元素逐个赋值给x。对于返回一个数组的方法,都可以使用foreach语句。
foreach语句不仅在录入代码时节省时间,而且阅读起来更容易。
5. return的作用
1)指定一个方法返回什么值。
2)导致当前的方法退出,并返回那个值。
6 .break和continue
和C,C++中的用法一样。
无穷循环的两种方式:while(true)和for(;;).
7 .臭名昭著的goto
Java中没有goto,但却有类似goto控制执行语句的用法:break,continue和标签一起使用。
标签:是后面跟有冒号的标示符,例如:labell;
在Java中,标签起作用的唯一地方刚好是在迭代之前。即在标签和迭代之间置入任何语句都不行。
Java中break,continue,以及它们和标签一起使用时的区别:
1)一般的cotinue会退出最内层循环的开头(顶部),并继续执行。
2)带标签的continue会到达标签的位置,并重新进入紧接着那个标签后面的循环。
3)一般的break会中断并跳出当前循环。
4)带标签的break会中断并跳出标签所指的循环。
要记住的重点是:在Java中使用标签的唯一理由就是有循环嵌套存在,而且想从多层嵌套中break和continue。
程序举例:
<span style="color:#333333;">//: control/LabeledFor.java
// For loops with "labeled break" and "labeled continue."
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer: // Can't have statements here
for(; true ;) { // infinite loop
inner: // Can't have statements here
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++; // Otherwise i never
// gets incremented.
break;
}
if(i == 7) {
System.out.println("continue outer");
i++; // Otherwise i never
// gets incremented.
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;
}
}
}
}
// Can't break or continue to labels here
}
}</span>
运行结果:
8. switch
和c,c++中的用法一样。