校订第五章

This commit is contained in:
LingCoder
2019-04-04 23:59:25 +08:00
parent edb944b775
commit 4bf30ecd40

View File

@@ -2,15 +2,15 @@
# 第五章 控制流
> 程序操纵它的世界并做出选择。 在Java中您可以使用执行控制语句进行选择。
> 程序必须在执行过程中控制它的世界并做出选择。 在 Java 中,你需要使用执行控制语句来做出选择。
Java 使用 C 的所有执行控制语句,因此如果您使用 C 或 C++ 进行编程,那么您所看到的大部分内容都是熟悉的。 大多数过程编程语言都有某种控制语句,并且语言之间经常存在重叠。在 Java 中,关键字包括 **if-elsewhiledo-whileforreturnbreak**名为 **switch** 的选择语句。 但是Java 并不支持备受诟病的 **goto**(它仍然是解决某些类型问题最有效方法)。 你仍然可以进行类似goto的跳转但它比其他语言中**goto** 更受限制。
Java 使用 C 的所有执行控制语句,因此对于熟悉 C/C++ 编程的人来说,这部分内容轻车熟路。 大多数面向过程编程语言都有共通的某种控制语句。在 Java 中,涉及的关键字包括 **if-elsewhiledo-whileforreturnbreak**选择语句 **switch**。 然而Java 并不支持备受诟病的 **goto**尽管它仍然是解决某些特殊问题最有效方法)。 在 Java 中,我们依然可以进行类似的跳转,但较之典型**goto** 更受限制。
[TOC]
## true和flase
条件表达式的示例是 **a == b**。这里有一个条件表达式示例,它使用条件操作符 **==** 来查看 **a** 的值是否等于 **b** 的值。 表达式返回 **true****false**。 如果显示条件表达式的结果,则会生成表示布尔值的字符串 **true****false**
所有的条件语句都利用条件表达式的“真”或“假”来决定执行路径。举例:
`a == b`。它利用了条件表达式 `==` 来比较 `a``b` 的值是否相等。 该表达式返回 `true``false`。代码示例:
```java
// control/TrueFalse.java
@@ -20,33 +20,37 @@ public class TrueFalse {
System.out.println(1 == 2);
}
}
/* Output:
true false */
```
您在上一章中看到的任何关系运算符都可以生成条件语句。 请注意Java 不允许您使用数字作为布尔值,即使它在 C 和 C++ 中允许(在这些语言中,“真”为非零,而“假”是零)。如果想在布尔测试中使用非布尔值,例如**if (a)**,必须首先使用一个条件表达式将其转换为布尔值,例如 **if (a= 0)**
输出结果:
```
true false
```
通过上一章的学习,我们知道任何关系运算符都可以产生条件语句。 **注意**:在 Java 中使用数值作为布尔值是非法的,即便这种操作在 C/C++ 中是被允许的(在这些语言中,“真”为非零,而“假”是零)。如果想在布尔测试中使用一个非布尔值,那么首先需要使用条件表达式来产生 **boolean** 类型的结果,例如 `if(a! = 0)`
## if-else
**if-else** 语句是控制程序流程最基本的形式。 其中**else** 是可选的,因此可以使用两种形式的 **if**
**if-else** 语句是控制程序执行流程最基本的形式。 其中 `else` 是可选的,因此可以两种形式的 `if`。代码示例
```java
if(Boolean-expression)
statement
statement
```
```java
if(Boolean-expression)
statement
statement
else
statement
statement
```
布尔表达式必须生成布尔结果statement 指用分号结尾的简单语句,或复合语句——封闭在括号内的一组简单语句。 每当使用 “statement” 一词时,它总是暗示语句可以是简单的或复合的
布尔表达式*Boolean-expression*)必须生成 **boolean** 类型的结果,执行语句 `statement` 既可以是只包含单个分号 `;` 的简单语句,也可以是包含大括号 `{}`复合语句 —— 封闭在括号内的一组简单语句。 凡本书中提及的“statement”一词,皆表示类似的执行语句
作为 **if-else** 的一个例子,下面这个 **test()** 方法可以告诉您,您猜的数大于、小于还是等于目标数
下面是一个有关 **if-else** 语句的例子。`test()` 方法可以告知你两个数值之间的大小关系。代码示例
```java
// control/IfElse.java
@@ -60,6 +64,7 @@ public class IfElse {
else
result = 0; // Match
}
public static void main(String[] args) {
test(10, 5);
System.out.println(result);
@@ -69,16 +74,19 @@ public class IfElse {
System.out.println(result);
}
}
/* Output:
```
输出结果:
```
1
-1
0
*/
```
**[1]** “else if” 不是新关键字,只是一个 else 后跟一个新的 if 语句。
<sub>**注解**`else if` 并非是新关键词,它仅是 `else` 后紧跟的一个新的 `if` 语句。</sub>
尽管 Java(如之前的 C 和 C++)是一种“自由格式”语言,但通常会缩进控件流语句的主体,以便读者可以轻松确定它的开始和结束位置
尽管 Java 如 C/C++ 都属“自由格式”的编程语言,但通常我们会在控制流程语句中采用首尾缩进的规范,以便代码具备更好的可读性
<!--Iteration Statements-->