《Java 7程序设计入门经典》一1.11 两种控制语句

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第1章,第1.11节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.11 两种控制语句

在方法内部,语句的执行是按语句出现的顺序执行。换句话说,执行从一条语句到另一条语句,自上而下顺序执行。但是,也可以根据一些条件改变流程。这样的情况在编程界非常常见。下面是一个例子。一个网站也许会需要输入一个密码。代码必须保证在密码无效时拒绝访问。于是,如果输入了无效的密码,则不能执行那些需要访问权限的代码。还是这个例子,在输入无效的密码时,可能会给用户两次或更多次正确输入密码的机会。为了解决这种情形,需要改变程序的执行流。Java提供了一种丰富的控制语句(control statement)。尽管第3章会详细介绍控制语句,但是这里简单介绍if语句和for语句。它将在后面编写例程时用到。

1.11.1 if语句

通过使用if语句,可以选择性地执行一部分程序。if语句是Java最基本的决策语句。所以,if语句是Java乃至一般编程最基础的元素之一。我们可以用if语句判定是否一个数小于另一个数,检查一个变量是否包含目标值,或测试某个错误情况。还有很多情形。
最简单的if语句具有以下形式:

if(condition) statement;

这里,condition是一个用来评估真假的表达式,这样的表达式称为布尔表达式(Boolean expression)。如果condition为真,就执行后续语句。如果condition为假,就跳过后续语句。于是,条件可以用来控制是否执行后续语句。下面是一个例子:
image

在这行中,小于操作符(<)用来判断10是否小于11。由于10小于11,因此条件表达式为真,执行println()方法。与之相对,考虑下面的情况:
image

在这个例子中,10并不小于9。所以,没有调用方法println()。
小于号(<)是Java的关系运算符(relation operator)之一。关系运算符决定两个值之间的关系。Java完整地定义了在条件表达式中所有互补的关系运算符。它们是:
image

注意,检测相等性使用两个等号。在所有情形下,关系运算符的结果不是真就是假。
下面的程序说明了if语句和关系运算符的用法。
image
image

该程序的输出为:
image

另外,还请注意,在该程序中:
image

该行代码通过用逗号分隔的列表定义了三个变量a、b和c。本书曾提及,若需要两个或更多相同类型的变量,它们可以在同一个语句中声明。只需要将变量名用逗号隔开即可。
image

1.11.2 for循环

许多情况下,程序需要多次执行一个任务。例如,可能想显示一天中的时间,而时间每秒更新一次。显然,为每个可能的时间(每秒一次),编写一个使用无数不同的println()语句的程序是不现实的。所以,这样的重复操作需要用循环(loop)来完成。循环是重复执行一系列代码的控制语句。循环广泛运用在几乎所有程序中。像if语句一样,循环也是编程的基础部分。
Java提供了强有力的一大类循环结构。这里将介绍for循环。for循环最简单的形式如下:

for(initialization; condition; iteration) statement;

在最常见的形式中,循环的initialization部分将循环控制变量(loop control variable)设置为一个初始值。condition是一个布尔表达式,它测试循环变量。如果测试的结果为真,for循环继续迭代。如果测试的结果为假,循环结束。表达式iteration决定在每次循环迭代中控制变量如何变化。下面的程序说明了for循环的用法:
image

程序的输出如下所示:
image

在这个例子中,count是循环控制变量。它在for循环的初始化部分设置为0。在每次迭代开始时(包括第一次迭代),测试条件count<5。如果测试结果为真,执行println()语句,然后执行循环的迭代部分。这个过程一直继续,直到测试条件为假。执行点转移到循环的底部。有趣的是,在专业人士编写的Java程序中,几乎不会看到像前面那样的循环的迭代部分。即,很少看到这样的代码:
image

这是因为Java包括一个特殊的增量运算符来使这个操作更加有效。这个增量运算符是++,即两个连续的加号。增量运算符将操作数增加1。使用增量运算符,前述语句可以写成这样:
image

于是,for循环通常写成这样:
image

你也可以试一试,循环将会同样有效地执行。
Java还提供了减量运算符,记为--。这个操作符将操作数递减1。
image

相关文章
|
1月前
|
Java
JAVA跳转控制语句
JAVA跳转控制语句
17 1
|
1月前
|
Java
JAVA结构化程序设计
JAVA结构化程序设计
15 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】— —第三十一题:银行账号管理程序设计
【Java每日一题】— —第三十一题:银行账号管理程序设计
210 1
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第三十题:班级管理程序设计
【Java每日一题】——第三十题:班级管理程序设计
62 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第二十九题:超市购物程序设计
【Java每日一题】——第二十九题:超市购物程序设计
115 0
【Java每日一题】——第二十九题:超市购物程序设计
|
1月前
|
Java 物联网 测试技术
Java面向对象程序设计3面向对象基础
Java面向对象程序设计3面向对象基础
168 0
|
1月前
|
设计模式 Java 数据安全/隐私保护
Java面向对象程序设计
Java面向对象程序设计
7 0
|
1月前
|
存储 Java
Java程序设计练习题8异常处理
Java程序设计练习题8异常处理
65 0
|
1月前
|
Java
Java面向对象程序设计5接口与抽象类
Java面向对象程序设计5接口与抽象类
25 0
|
1月前
|
自然语言处理 Java Perl
Java数组的程序设计
Java数组的程序设计
17 0

热门文章

最新文章