大多数过程型编程语言都具有某些形式的控制语句,他们通常在各种语言间是大多数过程型编程语言都具有某些形式的控制语句,通常在各种语言间是交迭的。在Java中,涉及的关键字包括 if-else,while,do-while,for,return,break,switch。
if - else 语句
if-else
,这是控制程序流程中的最基本的形式。其中的else是可选的。
其两种基本表示形式如下:
//if形式
if(Boolean-expression)
statement
//if-else形式
if(Boolean-expression)
statement
else
statement
所有的条件语句都利用条件表达式的真(true)假(false)
来决定执行路径。java中的所有关系操作符,都可以用来构造条件语句。但不能将一个数字作为布尔值使用,java中在进行布尔测试时使用一个非布尔值比如 if(a) ,那么首先必须用一个条件表达式将其转换成布尔值,例如:if(a!=0)
迭代语句
while、do-while、for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句的特点是会重复执行,直到起控制作用的布尔表达式(Booleanexpression)得到“假”的结果为止。
while循环语句:
//while循环的格式:
whlie(Boolean-expression)
statement
在循环开始时,会计算一次布尔表达式的值;而在语句的下一次迭代开始前会再进行一次。
例:产生随机数,直到出现符合条件的随机数
public class Thinking_test {
static boolean condition(){
boolean result = Math.random()<0.8;
System.out.print(result+". ");
return result;
}
public static void main(String []args){
while(condition())
System.out.println("Inside 'while' ");
System.out.println("Exited 'while'");
}
}
Output:
true. Inside 'while'
true. Inside 'while'
false. Exited 'while'
do-while循环语句:
//do-while格式
do
statement
while(Boolean-expression)
do-while与while不同,do-while中的语句至少会被执行一次,即便表达式第一次就被计算为false
也会执行一次,如果是while则不会执行。
for循环语句:
//for循环格式:
for(initialization(初始化表达式);Boolean-expression(布尔表达式);step(步进运算))
statement
for循环是最常用的迭代形式,其在进行第一次迭代时要进行初始化,之后进行条件测试、迭代、步进直到结束。
例:
public class Thinking_test {
public static void main(String []args){
for(int i=0;i<10;i++){
System.out.print(i+". ");
}
}
}
Output:
0. 1. 2. 3. 4. 5. 6. 7. 8. 9.
逗号操作符,Java里面唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句。
例:
public class Thinking_test {
public static void main(String []args){
for(int i=1,j=i+10;i<5;i++,j=j*2){
System.out.println(" i= "+ i + ", j= "+j);
}
}
}
Output:
i= 1, j= 11
i= 2, j= 22
i= 3, j= 44
i= 4, j= 88
无穷循环有两种形式:while(true)
和for( ; ; )
。
Foreach语句
Foreach是一种更加简洁的for语法用于数组和容器。不必创建int变量去对由访问项构成的序列进行计数,foreach将自动生成每一项。
例:
public class Thinking_03_test1 {
public static void main(String []args){
Random rand =new Random(47);
int []arr={1,2,3,4,5,6,7,8,9};
for(int i:arr)
System.out.print(i+". ");
}
}
Output:
1. 2. 3. 4. 5. 6. 7. 8. 9.
return、break和continue
在Java中有多个关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发生,这些关键词包括return、break、continue
。
return关键词
- return关键词由两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),
另一方面它会导致当前方法退出,并返回那个值。
例:比较两个数的大小
public class Thinking_test {
static String test(int level1,int level2){
if(level1>level2)
return "max="+level1+",min="+level2;
else if(level1<level2)
return "max="+level2+",min="+level1;
return "";
}
public static void main(String []args){
System.out.println(test(5,10));
System.out.println(test(6,3));
}
}
Output:
max=10,min=5
max=6,min=3
break和continue
- 在任何迭代语句的主体部分,都可用break和continue控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回到循环起始处,开始下一次迭代。
public class Thinking_test {
public static void main(String []args){
for (int i=0;i<10;i++){
if(i==5)continue;
if(i==8)break;
System.out.print(i+". ");
}
}
}
Output:
0. 1. 2. 3. 4. 6. 7.
switch选择语句
switch有时也被规划为一种选择语句。根据整数表达形式的值,switch语句可以从一系列代码中选择出一段去执行。
switch(integral-selector){
case integral-value1 : statement ; break ;
case integral-value2 : statement ; break ;
case integral-value3 : statement ; break ;
case integral-value4 : statement ; break ;
case integral-value5 : statement ; break ;
default : statement ;
}
switch语句是为了实现多路选择。但它要求使用一个选择因子,并且必须是int 或者 char 那样的整数值。如果用其他的比如字符串或者浮点数作为选择因子使用,那么它们在switch语句里是不会工作的。
例:
public class Thinking_test {
public static void main(String []args){
for(int i = 0; i < 7; i++) {
switch(i) {
case 0: System.out.print(" zero "); break;
case 1: System.out.print(" isa "); break;
case 2: System.out.print(" dalawa "); break;
case 3: System.out.print(" tatlo "); break;
case 4: System.out.print(" apat "); break;
case 5: System.out.print(" lima "); break;
case 6: System.out.print(" anim "); break;
default: System.out.print(" default ");
}
}
}
}
Output:
zero isa dalawa tatlo apat lima anim