基础三:控制执行流程

时间:2023-01-04 03:31:51

概述

在Java中,涉及的关键字包括:if-else , while , do-while, for, return, break和switch.

Java并不支持goto语句。


true和false

所有条件语句都利用条件表达式的真或假来决定执行的路径。

Java不允许我们将一个数字作为布尔值使用,虽然在C和C++中是允许的。
比如if(a)中,那么首先必须用一个条件表达式将其转换成布尔值,例如if(a!=0)


if-else

控制程序流程的最基本的形式,其中else是可选的。

if(Boolean-expression)
statement

或者

if(Boolean-expression)
statement
else
statement

迭代

while do-while和 for用来控制循环,有时将他们划分为迭代语句。

语句会重复执行,直到起控制作用的布尔表达式得到“假”的结果为止。

while

while的循环格式如下

while(Boolean-expression)
statement

例如: 产生随机数,直到符合特定的条件为止

public class WhileTest{

static boolean getConditon() throws Exception {

boolean result = Math.random() < 0.99;
System.out.println(result);
Thread.sleep(1000);
return result;

}

public static void main(String[] args) throws Exception {
while (getConditon()) {
System.out.println("in while");
}
System.out.println("out while");
}

}

random()的作用是 产生0和1之间的数(包括0 但不包括1)。

do-while

格式:

do
statement
while(Boolean-expression)

while和do-while的唯一区别就是: do-while中的语句至少会执行一次,即使表达式第一次就计算为false。

而在while中如果第一次的条件为false,其中的语句根本不会执行。

在实际应用中,while更常用一些。


for循环

格式:

for(initialization ; Boolean-expression ; step)
statement

初始化(initialization)表达式
布尔表达式(Boolean-expression)
步进(step)

每次迭代前都会测试布尔表达式,如果结果是false,就会执行后面的代码,每次循环结束,执行一次步进。

    public static void main(String[] args) throws Exception {
for (char c = 0; c < 128; c++) {
if (Character.isLowerCase(c)) {
System.out.println("value:" + (int) c + " ,character:" + c);
}
}
}

逗号操作符

注意不是逗号分隔符,而是逗号操作符。

Java中唯一用到逗号操作符的地方就是for循环的控制表达式。

在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,而且那些语句均会独立执行。

基础三:控制执行流程

在一个控制表达式中,定义多个变量的这种能力只限于for循环适用,在其他任何选择或者迭代语句中都不能使用这种方式。


Foreach

JavaSE5中引入了一种更加简介的for语法用于数组和容器。

不必创建int变量去对由访问项构成的序列进行技术,foreach会自动产生每一项


return

两个作用

    1. 指定一个方法的返回值(假设它没有void返回值)
    1. 退出当前方法,并返回那个值

break和continue

break用于强行退出循环,不执行循环中剩下的语句

continue则停止当前的迭代,然后退出循环起始处,开始下一次迭代。

基础三:控制执行流程

switch

switch(integral-selector){
case interal-value: statement ; break;
case interal-value: statement ; break;
case interal-value: statement ; break;
case interal-value: statement ; break;
// .....
default : statement ;
}