1 true和false
- 所有条件语句都利用条件表达式的真或假来决定执行路径。
- Java不允许我们将一个数字作为布尔值使用。
2 if-else
- if-else语句是控制程序流程的最基本形式,其中的else是可选的。
if(Boolean-expression)
statement
else
statement
3 迭代
- while、do-while和for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制作用的布尔表达式得到“假”的结果为止。
while(Boolean-expression)
statement
- 在循环刚开始时,会计算一次布尔表达式的值;而在语句的下一次迭代开始前会再计算一次
3.1 do-while
- whie和do-while唯一的区别就是do-while中的语句至少会执行一次。
do
statement
while(Boolean-expression)
3.2 for
- 在第一次迭代之前要进行初始化,随后进行条件测试,每一次迭代结束时,进行某种形式的“步进”。
for(initialization; Boolean-expression; step)
statement
- 初始化(initialization)表达式、布尔表达式(Booleann-expression),或者步进(step)都可以为空。
- Character.isLowerCase()检查字符是否为小写字母。
3.2 逗号操作符
- 逗号用作分隔符时用来分隔函数的不同参数。
- 唯一用到逗号操作符的地方是for循环的控制表达式
- 通过使用逗号操作符,可以在初始化部分定义多个变量,但是它们必须具有相同的类型;在步进控制部分使用多个语句,这些语句均会独立执行。
4 Foreach语法
- foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。
for(对象或者基本类型 变量名 : 对象或基本类型的数组或容器) {}
- 任何返回一个数组的方法都可以使用foreach。
- String.toCharArray()返回char数组。
- foreach还可以用于任何Iterable对象。
- 对于在一个整型值序列中步进,foreach语法将不起作用,除非先创建一个int数组。
5 return
- 无条件分支,return、break、continue,这个分支无需任何测试即可发生。
- return:一方面指定一个方法返回什么值,另一方面它会导致当前的方法退出,并返回那个值。
- 如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return。
- 如果一个方法声明它将返回void之外的其他东西,那么必须确保每一条路径都将返回一个值。
6 break和continue
- 在任何迭代语句的主体部分,都可用break和continue控制循环的流程。
- break用于强行退出循环,不执行循环中剩余的语句。
- continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
- 无穷循环:
while(true)
和for(;;)
7 臭名昭著的goto
- goto起源于汇编语言的程序控制。
- goto是java中断一个保留字,但在语言中并未使用goto。
- 标签是后面跟有冒号的标识符。
- 标签起作用的唯一的地方刚好是在迭代语句之前,其中嵌套另一个迭代或者一个开关。
- break和continue关键词通常只中断当前循环,随标签使用,就会中断循环直到标签所在的位置。
- break和continue outer中断循环,递增表达式不会执行。
- 在Java里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中break或continue。
- 通过限制语言的能力,反而能使一项语言特性更加有用。
8 switch
- 根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行。
switch(interal-selector)
{
case interal-value1 : statement; break;
case interal-valuel : statement; break;
...
default : statement;
}
- Interal-selector(整数选择因子)是一个能够产生整数值的表达式。interal-value的值不能重复。
- 若省略break,会继续执行后面的case语句,直到遇到一个break为止。
- switch语句是实现多路选择的一种干净利落的方法。
- 在case语句中,使用单引号引起的字符也会产生用于比较的整数值。
- case语句能够堆叠在一起,只要符合多种条件中的一种,就执行那段特别的代码。