Java控制执行流程
简介
Java使用了C的控制流程语句,在Java中,涉及的关键字包括if-else、whlile、do-while、for、return、break、和选择语句switch-case
true和false
所有条件语句都利用表达式来判断真或假来决定执行路径。其中条件表达式的返回值为true(对)、false(假)。true和false均为Java中的Boolean(布尔)类型。注意大小写不能写错。
int a = 1;
int b = 1;
System.out.println(a==b); //true
除了基本数据类型中的String类型,不要使用“==”来判断两字符串是否相等,其余均可使用“==”。例如:
String str1 = "abc";
String str2 = new String("abc");
System.out.println(str1 == str2); //false
这里涉及到内存的相关知识,以后再做讲解。
注意Java不允许将一个数字作为布尔值使用,在C和C++是允许的(“真”是非零,“假”是零)。
if-else
if-else语句是控制程序流程的最基本形式,其中else是可选的(可有可无),具体看你自己的程序流程安排。有以下三种形式:
if(Boolean-expression){
statement
}
if(Boolean-expression){
statement
}else{
statement
}
if(Boolean-expression){
statement
}else if(Boolean-expression){
statement
}else{
statement
}
案列:
int num1 = 2;
int num2 = 3;
int result = 0;
if(num1 > num2){
result = 1;
}else if(num1 < num2) {
result = -1;
}else {
result = 0;
}
System.out.println(result); //result = -1
其中if和else if括号里面的就是布尔表达式必须产生一个布尔结果,其中可以嵌入多个else if进行更多的逻辑判断。但是无论有多少的语句if – else if – else都只会执行一个里面的statement。有else就代表当前面所有的逻辑判断都不满足时就执行else里面的语句,如果有一个满足,则不会执行else里的语句。
循环
while、do-while、for用来控制循环,又被称为迭代语句。语句会重复执行直到起作用的布尔表达式得到“假”结果为止。
while格式如下:
while(Boolean - expression){
statement
}
案列:
int i = 0;
while(i < 5){
i++;
}
System.out.println(i); //i=5
do-while格式如下:
do{
statment
}while(Boolean - expression)
while和do-while的唯一区别就是do-while中的语句至少会执行一次,因为它是先执行语句再判断,而while循环是直接判断再执行语句。dhile比do-while更加常用。
for循环是最经常使用的循环,for循环的格式如下:
for(initialization;Booleann - expression;step{
statement
}
初始化(initialization)表达式、布尔表达式(Boolean - expression)、步进(step)运算都可以为空,每次迭代前会进行布尔判断,循环结束会执行一次步进。在for循环内部定义的变量,只能在for循环内部使用。
for(int i = 0;i<10;i++){
System.out.println(i); //输出0-9
}
foreach语法
用于遍历数组和容器。尽量遍历数组或者容器时采用foreach语法,阅读起来容易、代码简洁。
int[] array = {3,5,7,9,1};
for(int ele:array){
System.out.println(ele); //3 5 7 9 1
}
retrun
return关键词作用:一方面指定一个方法返回的值,另一方面它会导致当前方法的退出并返回那个值。一旦一个方法执行时遇到了return关键字,无论下面还是否有语句还未执行都退出当前方法。
break和continue
break用于退出循环,不执行循环体中的剩余语句。continue则停止当前迭代,然后退回循环起始处,开始下一次迭代。
for (int i = 0; i < 100; i++) {
if (i == 74) {// Out of for loop
break;
}
if (i % 9 != 0) {// Next iteration
continue;
}
System.out.print(i + " ");
}
System.out.println();
int i = 0;
while (true) {
i++;
int j = i * 27;
if (j == 1269) {// Out of loop
break;
}
if (i % 10 != 0) {// Top of loop
continue;
}
System.out.print(i + " ");
}
输出结果:
1. 0 9 18 27 36 45 54 63 72
2. 10 20 30 40
其中for(;;)和while(true)是无穷for循环。
switch-case语句
switch(变量){
case 变量值1:
//;
break;
case 变量值2:
//...;
break;
...
case default:
//...;
break;
}
switch语句用的比较少,主要实现多路选择功能。特别注意case里面有一个break,如果没有break;则当执行完当前case里面的语句,又跳到下一case里,直到遇到break关键字。