您的位置:首页 > 编程语言 > Java开发

java之控制执行流程

2015-04-26 16:18 169 查看

  流程控制

 就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并作出选择,在java中你要使用执行控制语句来做出选择

 

   java使用了C的所有流程控制语句,所以如果你以前用过C或者C++编程,那么应该非常熟悉了。大多数过程型编程语言都具有某些形式的控制语句,它们通常在各种语言间是交迭的。在java中,设计的关键字包括if-else,while,do-while,for,return,break,以及选择语句switch。

        1.1 true合false

        所有条件语句都利用表达式的真或者假来决定执行路径。例:“a==b”使用“==”来判断a的值是否等于b。该表达式返回true或者

        1.2if-else

        if-else语句是控制流程的最基本的形式。其中的else是可选的,所以可按下述两种形式来使用if

注意:布尔表达式必须产生一个布尔结果


if(boolean-expression){

//代码

}

或者

if(boolean-expression){

//代码

}else{

//代码

}

下面一个test()方法是一个if-else的例子。

public class Test {
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;
}
}
public static void main(String[] args) {
test(10,5);
System.out.println(result);
test(5,10);
System.out.println(result);
test(5,5);
System.out.println(result);
}
}
结果是1 -1 0
在test()的中间部分,可以看到一个"else if"  ,那并非新的关键字,而仅仅只是一个else后面紧跟另一个新的if语句。

注意:尽管java与它之前产生的C,C++一样,都是格式自由的语言,但是习惯上还是将流程控制语句的主体部分缩进排列,可以有效的提高代码的可读性

1.3 迭代

while,do-while合for用来控制循环,有时将他们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制作用的布尔表达式(Booleanexpression) 得到“假”的结果为止。

while循环结构如下:  再循环开始的时候,会计算一次布尔表达式的值,而在语句的下一次迭代开始前会再次计算一次

wile(布尔表达式){

代码块

}

do-while循环结构如下:while合do-while的唯一区别就是do-while中的语句至少会执行一次,即便布尔表达式第一次计算为false。而while在第一次计算为false的时候就已经结束循环了

do{

代码块

}while(布尔表达式)

for循环结构如下:for循环可能是最常用的迭代形式,在第一次迭代之前要进行初始化。随后他会进行条件测试,而且在每一次迭代结束的时候会进行步进

for(初始化表达式;布尔表达式;补进运算){

代码块

}

1.4Foreache语法:在java se5已用了一种新的更加简介的for语法用于数组或者容器的迭代。看下面这个代码例子


public class Test {
static float f[] = new float[]{5.1f,5.3f};
public static void main(String[] args) {
for(float x: f){
System.out.println(flo);
}
}

}
在for(float x:f){}在这条语句定义了一个float类型的变量x,继而将每一个f的元素x赋值给x,每次循环进行步进是for循环的简化版
1.5 reutrn

在java中有多个关键字表示无条件分支,它们只是表示这个分支需任何测试即可发生。这些关键词包括 return , break, continue

return关键字有两方面用途:一方面制定一个方法返回什么值,另一方面它会导致当前的方法退出,并返回那个值看下面这个例子public class Test {
static int result = 0;
static int test(int testval,int target){
if(testval >target){
return 1;
}else if(testval<target){
return -1;
}else{
return 0;
}
}
public static void main(String[] args) {
System.out.println(test(10,5));
System.out.println(test(5,10));
System.out.println(test(5,5));
}
}
结果:1,-1,0

注:如果方法是void的那么会有一个隐式return


1.6 break 合continue


在任何迭代语句的主体部分,都可以使用breank合continue控制循环流程。其中,break用于强制退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处开始下一次迭代

下面这个例子来演示break合continue在for合while中的例子

public class BreakAndContinue {
public static void main(String[] args) {
for(int i =0;i<100;i++){
if(i==74){
break;//如果i==74就停止循环
}
if(i%9 != 0){
continue;//如果i被9取余数 !=0那么就结束本次循环执行下次循环
}
System.out.print(i+" ");
}
}
}
结果:0 9 18 27 36 45 54 63 72 
在这个for循环中,i的值永远不会达到100,因为一旦i达到74,break语句就会中断循环,通常只只有在不知道中断条件何时满足时,才玉箫这样使用break。只要i不能被9整除continue语句就会执行过程返回循环的开头如果能呗整除就会显示出现

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: