java执行控制流程
执行控制流程涉及到
- 条件语句
- 循环语句
- 跳转语句
条件语句
条件语句可根据不同的条件执行不同的条件。包括:
- if条件语句
- switch多分支语句。
if条件语句
if 语句中的变量类型可以是任何类型
if条件语句可以单独判断表达式的执行结果,表示表达的执行结果,一般使用比较运算符得出boolean类型的结果。
例如:
int i = 1;
if(i>0){
判断结果为true时执行的复核语句
}
if...else条件语句
if语句也可以与else连用,通常表现为如果满足某种条件,就进行处理,否则就进行另一种处理。
例如:
int i=0;
int i2=1;
if(i>i2){
判断结果为true时执行if后面的复合语句
}else{
判断结果为false时执行else后面的复合语句
}
多分支语句
- if...if else多分支语句
- switch case多分支语句
如果有多个判断条件,就需要使用if...if else或switch case
例如:
int x=40;
if(x>60){
判断结果为true时执行if后面的复合语句
}if else(x>30){
判断结果为true时执行if后面的复合语句
}else{
判断结果为false时执行if后面的复合语句
}
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开 始,switch 支持字符串 String 类型。
例如:
public static void main(String[] args) {
String s = "a";
switch (s) {
case "a": //a分支
判断结果为true时执行case后面的复合语句
case "b": //b分支
判断结果为true时执行case后面的复合语句
case "c": //c分支
判断结果为true时执行case后面的复合语句
break;
case "d": //d分支
判断结果为true时执行case后面的复合语句
break;
default:
判断结果为false时执行case面的复合语句
break;
}
}
swith语句中的条件判断为true时,case分支如果没有添加break,则不在进行条件的判断,一直执行case分支,直到遇到case分支的break语句才终止。
swith语句中的条件判断为false时,执行default分支。
循环语句
有些程序段在某写条件下重复执行多次,成为循环结构程序。
JAVA提供了3种循环语句实现循环结构,包括while语句、do...while语句、for语句。他们的共同点是根据给定条件来判断是否继续执行指定的程序段(循环体)。如过满足执行条件,就继续执行循环体,否则就不再执行循环体,结束循环语句。
while循环
while(boolean表达式){
循环体;
}
while循环语句的方式为利用一个条件来控制是否要继续反复执行这个语句。
它的含义是,当布尔值为true的时侯,执行下面的表达式,布尔值为false的时候,结束循环。
循环体可以是一条简单的语句,也可以是复合语句。
例如:
int a = 10; while(a > 5){ a--; }
每次执行都会计算a的值,判断结果为false时循环结束。
do...while循环
while与do...while循环的唯一区别是do...while语句至少执行一次,即使第一次表达式为false。而在while循环中,如果第一次条件为false,那么其中的方法体根本不会执行。在实际应用中,while要比do...while应用的更广。
do-while循环的语法如下:
do{
循环体;
}while(布尔表达式);{
循环体;
}
布尔表达式表示循环执行的条件。
循环体既可以是一条语句,也可以是语句序列。
do...while语句执行的过程是:执行循环体,计算布尔表达式的值,如果其值为true,在执行循环体,形成循环,直到布尔表达式的值为false,结束循环。
int b = 10; // do···while循环语句 do { System.out.println("b == " + b); b--; } while(b == 1);{ 循环体; }
第一次执行条件判断布尔值结果不论是true或false循环都会执行。
for循环
for循环是我们经常使用的循环方式,这种形式会在第一次迭代前进行初始化。他的形式如下
for(初始化; 布尔表达式; 步进){ 循环体; }
初始化的作用是给循环变量初始化值。
布尔表达式的作用是给出循环条件,使用比较运算符,判断结果是true循环执行,判断结果是false结束循环。
步进的作用是改变循环变量的值。
循环体可以是一条或多条语句。
for循环的执行过程是:执行初始化,计算布尔表达式结果,结果是true执行循环体,步进改变循环变量的值。再计算布尔表达式的结果,结果是true,再进入循环体执行循环,直到计算布尔表达式结果是false,结束循环。
public class Main {
public static void main(String[] args) {
int a = 10;
for(int i=0;i<a;i++){
System.out.println(i);
}
}
}
双重for循环
在for循环语句中,可以再嵌套一个for循环,这样的for循环语句我们称之为双重for循环。
第一层for循环的执行过程是:执行初始化,计算布尔表达式结果,结果是true执行第二层循环,第二层for循环的执行过程是:执行初始化,计算布尔表达式结果,结果是true执行循环体,步进改变循环变量的值。再计算布尔表达式的结果,结果是true,再进入循环体执行循环,直到计算布尔表达式结果是false,结束循环。第一层循环步进改变循环变量的值,结束循环。
for-each循环语句
在java JDK5 中引入了一种更加简介的,方便对数组、集合遍历的循环。在遍历数组、集合方面for-each为开发者提供了极大的方便。for-each循环语句是for语句的特殊简化版本,主要用于执行遍历功能的循环。
for(类型 变量名:集合) { 循环体; }
例如:
int array[] = {7, 8, 9}; for (int arr : array) { System.out.println(arr); }
语句跳转
java中有3种跳转语句:
- break
- continue
- retun
break语句我们在switch循环种已经见到了,它适用于终止循环的操作,实际上break语句在switch、while、do...while、for循环语句中用于强行推出当前循环。
例如:
for(int i = 0;i < 10;i++){ if(i == 5){ break; } }
continue语句只是中断当前循环并不会让整个循环结束
例如:
for(int i = 0;i < 10;i++){ System.out.printl(" i = " + i ); if(i == 5){ System.out.printl("continue ... "); continue; } }
return语句用在方法中,作用是终止当前方法的执行,返回到调用该方法的语句中,并继续执行程序。
return语句的格式:return[表达式]
- return语句后面可以带返回值,也可不带返回值。
- 表达式可以是常量、变量、对象等。return语句后面的表达式的数据类型必须与方法声名的数据类型一致。
- 当程序执行return语句时,先计算表达式的值,然后将表达式的值返回到调用该方法的语句处。
- 位于return语句后面的代码不会被执行,所以return语句通常放在语句块的最后。