三元操作符:
boolean-exp ? value0 : value1
如果布尔表达式boolean-exp为true则计算value0,否则计算value1
控制执行流程
关键字:Java控制执行流程主要涉及的关键字if-else、while、do-while、for、return、break、continue
Java并不支持goto語句,但是在java中仍然保留了goto
条件判断:所有条件判断都利用条件表达式的真或假来决定执行流程
注意:java不允许将一个数字等非boolean值作为布尔值使用,如果要在布尔测试中使用一个非布尔值则首先必须用一个条件表达式将其转换成布尔值。
Ex:a是非boolean类型值 if(a)×à if(a!=0) √
while:先判断条件表达在执行循环体,条件为false则一次都不执行
do-while:先执行循环体,再判断条件表达式,因此至少会执行一次
for语句:for(int i = 1, j = 5;i < 5;i++,j = i+2)
for语句初始化部分实际上可以定义任意数量的变量,注意:但是这些变量都必须是同一种数据类型
for语句中可以使用一系列有逗号表达式分隔的语句
增强行的for循环:for(char c : “hello world”.toCharArray())
如果for循环有索引或是步进,则上述增强行的for循环不能够直接满足需求
Think in java 建议自写一个range()方法配合增强型的for循环
import static net.mindview.util.range.* //此包需从www.mindview.com上下载 Ex:for(int i : range(10)) //range(10)返回数组,元素为0..9 for(int i : range(5,10)) //range(5,10)返回数组,元素为5..9 for(int i : range(5,10,3)) //range(5,10,3)返回数组,元素为5..10 step 3 while(true) = for(;;) switch .. case...break语句: switch(integral-selector) //integral-selector:选择因子必需是int或是char那样的整数值 case integral-value1:statement:break; // Default:statement; |
单一case satatement后面需有break,避免case穿透到下一case statement
return:指定一个方法的返回值,并退出该方法。
如果一个方法声明有非void的返回值,那么必须确保每一条代码路径都将返回一个值
break:终止当前循环体
continue:停止循环体的当前迭代,然后退回循环起始处,开始下一次迭代
goto:虽然java不再使用goto语句,但是依然保留了goto作为关键字
在java中如果想实现goto一样跳转语句的功能可以使用标签编程
请看如下demo:GotoLabel.java
package javabase.flowcontrol; public class GotoLabel { |
一般的continue会退回最内层循环的开头,并继续执行
带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环
一般的break会中断并跳出当前的循环体
带标签的break会中断并跳出标签所指的循环