单元3 使用条件语句
条件语句用于处理程序将执行某些操作的条件。本单元将详细讨论如何在程序中做出决策或处理条件。本单元是深入理解程序设计中的逻辑的第一步,特别讨论关系运算符和逻辑运算符、if语句、if else语句和switch case语句,以及如何使用Java GUI实现所有这些条件语句。
任务3.1 关系运算符和逻辑运算符
程序中的决策是必须做的事情,例如在某些情况下程序必须采取特定的操作。作出决定的条件是涉及关系运算符和逻辑运算符的语句。这些关系运算符是<(小于)和>(大于),其结果为true或false。逻辑运算符是| |(或)、!(不是)和&&(和)也有真值或假值。在程序中进行决策时,必须使用这两个运算符来确定条件。有关更多详细信息,下面将详细讨论关系运算符和逻辑运算符。
关系运算符
关系运算符是用于比较两个或多个操作数的运算符。关系运算符的使用可以应用于数字数据和字符串或对象。有关更多详细信息,见表3-1-1是分类为关系运算符的运算符
根据上表,我们可以看到使用关系运算符的案例以及每个运算符的结果。上面的关系运算符与每个数据的ASCII代码进行了比较。计算机键盘上包含的每个字符都有其ASCII值,在决策过程中,这个值由关系运算符进行比较
如前所述,所有关系运算符都可以用于数值数据或字符串数据。无论是整数还是浮点类型的数值数据,关系运算符的使用都非常容易理解,因为我们经常在数学中使用它。但是这里需要理解的是,在编程中,比较过程是在ASCII值上进行的。在表3-1-1中的数据字符串(如“A”==“a”)上使用关系操作符将产生一个假值,这是因为A和a具有不同的ASCII值。
有关更多详细信息,让我们看看在GUI Java中使用关系运算符的案例。
1. 案例3.1——数字大小比较器
本例将展示如何使用关系运算符。每个操作符的使用将通过一个按钮表示,获得的结果将显示在一个文本字段中。
以下是制作此应用程序的步骤:
① 创建名为RelationalOperators的项目。
② 用OperatorsForm添加JFrame Form。
③ 添加6个具有以下变量名的按钮:GreaterButton、SmallerButton、GreaterEqualButton、SmallerEqualButton、EqualButton和NotEqualButton。使用以下名称更改每个按钮的文本:“4>1”、“3<2”、“10>=10”、“15<=14”、“A==a”和“20!=10”所有这些按钮代表表3-1-1中的案例。
④ 若要显示使用运算符的结果,请添加变量名为txtOutput的文本字段。
这是应用程序首次运行时的显示如图3-1-1所示。
图3-1-1数字大小比较器首次运行显示
下面是Form窗口中每个按钮的事件。
- private void GreaterButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output = 4>1;
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void SmallerButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output = 3<2;
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void GreaterEqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output = 10>=10;
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void SmallerEqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output =15<=14;
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void EqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output = ("A"=="a");
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void NotEqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO add your handling code here;
- boolean output =20!=10;
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
以下是单击Form窗口上的每个按钮时显示的应用程序如图3-1-2、图3-1-3、图3-1-4、图3-1-5、图3-1-6、图3-1-7所示。
图3-1-2数字大小比较器运行显示1
图3-1-3数字大小比较器运行显示2
图3-1-4数字大小比较器运行显示3
图3-1-5数字大小比较器运行显4
图3-1-6数字大小比较器运行显示5
图3-1-7数字大小比较器运行显示6
从应用显示可以看出,应用得到的结果与表3-1-1的结果相同。要使用关系运算符存储操作结果,我们需要一个Boolean类型的变量。在这种情况下,比较操作的结果存储在具有名称output的变量中(如第3行、第8行、第13行、第18行、第23行和第28行所示)。若要在文本字段中显示结果,必须使用以下代码执行从boolean到string的类型转换:Boolean .toString(result)。在文本字段中显示结果时,toUpperCase()函数的作用是将字符串转换为大写字母。
2. 案例3.2——字符相等鉴别器V1
本例将显示如何使用关系运算符比较两个字符串。应用程序将在两个文本字段中显示两个字。然后使用两个运算符比较这两个词,其中是==(相等运算符)和!=(不等于运算符)
以下是制作此应用程序的步骤:
① 创建名为StringComparison的项目
② 添加名为ComparisonForm的JFrame Form。
③ 添加带有以下文本的两个标签:“单词1”和“单词2”,然后添加具有以下变量名的两个文本字段:txtWord1和txtWord2。
④ 添加两个具有以下变量名的按钮:EqualButton和NotEqualButton,然后使用“==”和“!=”更改每个按钮的文本
⑤ 添加将用于显示结果的文本字段,并使用txtOutput更改变量名。
⑥ 添加一个将用作Form窗口标题的标签,并用“比较字符串”更改文本。
应用程序首次运行时显示如图3-1-8所示
图3-1-8 字符相等鉴别器V1首次运行显示
下面是Form窗口中每个按钮的事件:
- private void EqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- // TODO add your handling code here:
- boolean output;
- txtWord1.setText("java");
- txtWord2.setText("java");
- output = ("java"=="java");
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
- private void NotEqualButtonActionPerformed(java.awt.event.ActionEvent evt) {
- // TODO add your handling code here:
- boolean output;
- txtWord1.setText("java");
- txtWord2.setText("jawa");
- output = ("java"!="jawa");
- txtOutput.setText(Boolean.toString(output).toUpperCase());
- }
以下是单击每个按钮时显示的应用程序如图3-1-9所示。
图3-1-9 字符相等鉴别器V1运行显示
对两个字符串的关系操作只能使用运算符==和运算符!来执行如果直接比较这两个字符串而不将它们存储在变量中。
"java"=="java"
"java"!="jawa"
上面的代码用于使用运算符==和运算符!=比较两个字符串。如果字符串数据存储在变量中,则使用这两个运算符的字符串比较将失败。这是因为具有String数据类型的变量是一个对象,因此不能使用这两个运算符来比较具有String数据类型的两个变量。
将变量与String数据类型进行比较需要特殊的函数。String类提供用于字符串比较的方法或函数。有关更多详细信息,下面的案例将展示如何将两个变量与字符串数据类型进行比较。
3. 案例3.3——字符相等鉴别器V2
与案例3.2一样,本例还将展示如何比较字符串数据。但是,在这种情况下,将要比较的字符串数据存储在变量中。因此,我们将比较两个字符串对象或变量在这种情况下,程序将要求用户在两个文本字段中输入两个单词,然后在单击按钮时比较这两个单词。
以下是制作此应用程序的步骤:
① 创建名为StringObjectComparison的项目
② 添加名为ComparisonForm的JFrame Form。