如何在 Java 中检查一个数字是否为偶数

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何在 Java 中判断一个数是偶数还是奇数。我们将探讨使用取模运算符 (%) 来检查一个数除以 2 时的余数,这是识别偶数的基本原理。

你将实现一个简单的 Java 程序来执行此检查,使用正整数和负整数输入对其进行测试,并考虑如何处理非整数输入,以使你的解决方案更加健壮。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/data_types -.-> lab-559962{{"如何在 Java 中检查一个数字是否为偶数"}} java/operators -.-> lab-559962{{"如何在 Java 中检查一个数字是否为偶数"}} java/if_else -.-> lab-559962{{"如何在 Java 中检查一个数字是否为偶数"}} java/user_input -.-> lab-559962{{"如何在 Java 中检查一个数字是否为偶数"}} java/exceptions -.-> lab-559962{{"如何在 Java 中检查一个数字是否为偶数"}} end

使用取模运算符进行偶数检查

在这一步中,你将学习如何在 Java 中使用取模运算符来判断一个数是偶数还是奇数。取模运算符 (%) 用于返回除法运算的余数。例如,10 % 3 的结果是 1,因为 10 除以 3 商为 3,余数为 1。

偶数是指任何能被 2 整除且没有余数的整数。这意味着,如果你将一个偶数除以 2,余数始终为 0。我们可以使用取模运算符来检查这个条件。

让我们创建一个简单的 Java 程序来检查一个数是否为偶数。

  1. 在 WebIDE 编辑器中打开 EvenCheck.java 文件。如果该文件不存在,请在 ~/project 目录下创建它。你可以通过在左侧的文件资源管理器中右键单击,选择“新建文件”,然后输入 EvenCheck.java 来完成此操作。

  2. 将以下代码添加到 EvenCheck.java 文件中:

    public class EvenCheck {
        public static void main(String[] args) {
            int number = 10; // 我们将检查这个数是否为偶数
    
            // 使用取模运算符检查除以 2 时的余数
            if (number % 2 == 0) {
                System.out.println(number + " is an even number.");
            } else {
                System.out.println(number + " is an odd number.");
            }
        }
    }

    让我们来看看新添加的部分:

    • int number = 10;:这行代码声明了一个名为 number 的整数变量,并将其赋值为 10。你可以更改这个值来测试不同的数字。
    • if (number % 2 == 0):这是一个 if 语句。它会检查括号内的条件是否为真。条件 number % 2 == 0 用于检查 number 除以 2 的余数是否等于 0。
    • System.out.println(number + " is an even number.");:如果 if 语句中的条件为真(即该数是偶数),则执行这行代码。
    • else:这个关键字引入了一个代码块,当 if 语句中的条件为假(即该数是奇数)时执行。
    • System.out.println(number + " is an odd number.");:如果该数是奇数,则执行这行代码。
  3. 保存 EvenCheck.java 文件(Ctrl+S 或 Cmd+S)。

  4. 现在,编译这个程序。打开 WebIDE 底部的终端,并确保你位于 ~/project 目录下。然后,运行以下命令:

    javac EvenCheck.java

    如果没有错误,将会创建一个 EvenCheck.class 文件。

  5. 最后,运行编译后的程序:

    java EvenCheck

    你应该会看到输出结果,表明数字 10 是偶数还是奇数。

    10 is an even number.

现在,尝试将 EvenCheck.java 文件中 number 变量的值更改为其他整数(例如 7、-5、0),并重复步骤 3、4 和 5,看看输出结果会如何变化。

使用正数和负数进行测试

在上一步中,我们成功地检查了一个正整数是偶数还是奇数。现在,让我们来探究取模运算符在处理负数和零的情况时是如何工作的。偶数和奇数的概念适用于所有整数,包括负数和零。

如果一个整数能被 2 整除,即余数为 0,那么它就是偶数。这个定义同样适用于负数。例如,-4 是偶数,因为 -4 除以 2 等于 -2,余数为 0。-3 是奇数,因为 -3 除以 2 等于 -1,余数为 -1(或者根据负数取模的定义为 1,但关键是余数不为 0)。零也被认为是偶数,因为 0 除以 2 等于 0,余数为 0。

让我们修改 EvenCheck.java 程序,用不同的正数、负数以及零进行测试。

  1. 在 WebIDE 编辑器中打开 EvenCheck.java 文件。

  2. 修改 main 方法以测试几个不同的数字。你可以多次更改 number 变量的值,或者添加更多的 if-else 块来依次检查不同的数字。为了简单起见,让我们针对每个测试用例更改 number 的值并重新运行程序。

    首先,让我们用一个正奇数进行测试。将 int number = 10; 这一行改为:

    int number = 7; // Test with a positive odd number
  3. 保存文件。

  4. 在终端中编译修改后的程序:

    javac EvenCheck.java
  5. 运行程序:

    java EvenCheck

    你应该会看到如下输出:

    7 is an odd number.
  6. 现在,让我们用一个负偶数进行测试。将 int number = 7; 这一行改为:

    int number = -4; // Test with a negative even number
  7. 保存文件。

  8. 编译程序:

    javac EvenCheck.java
  9. 运行程序:

    java EvenCheck

    你应该会看到如下输出:

    -4 is an even number.
  10. 接下来,用一个负奇数进行测试。将 int number = -4; 这一行改为:

    int number = -3; // Test with a negative odd number
  11. 保存文件。

  12. 编译程序:

    javac EvenCheck.java
  13. 运行程序:

    java EvenCheck

    你应该会看到如下输出:

    -3 is an odd number.
  14. 最后,用零进行测试。将 int number = -3; 这一行改为:

    int number = 0; // Test with zero
  15. 保存文件。

  16. 编译程序:

    javac EvenCheck.java
  17. 运行程序:

    java EvenCheck

    你应该会看到如下输出:

    0 is an even number.

如你所见,取模运算符能够正确识别正数、负数和零中的偶数和奇数。逻辑 number % 2 == 0 是一种可靠的方法,可用于检查任何整数是否为偶数。

处理非整数输入

在前面的步骤中,我们已经成功地使用取模运算符来检查整数是偶数还是奇数。然而,如果用户尝试输入非整数,比如小数或文本,会发生什么呢?我们当前的程序是为处理整数 (int) 而设计的,提供非整数输入会导致错误。

在这一步中,我们将修改程序,使其能够从用户那里获取输入,并处理输入不是有效整数的情况。我们将使用 Scanner 类来读取用户输入,这个类我们在“Your First Java Lab”中曾简单介绍过。

  1. 在 WebIDE 编辑器中打开 EvenCheck.java 文件。

  2. 将文件的全部内容替换为以下代码:

    import java.util.Scanner;
    import java.util.InputMismatchException;
    
    public class EvenCheck {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("Enter an integer: ");
    
            try {
                int number = scanner.nextInt(); // Read integer input from the user
    
                // Use the modulo operator to check for a remainder when divided by 2
                if (number % 2 == 0) {
                    System.out.println(number + " is an even number.");
                } else {
                    System.out.println(number + " is an odd number.");
                }
    
            } catch (InputMismatchException e) {
                System.out.println("Invalid input. Please enter an integer.");
            } finally {
                scanner.close(); // Close the scanner
            }
        }
    }

    让我们看看这些改动:

    • import java.util.Scanner;:导入 Scanner 类以读取输入。
    • import java.util.InputMismatchException;:导入当输入与预期类型不匹配时抛出的异常类。
    • Scanner scanner = new Scanner(System.in);:创建一个 Scanner 对象,用于从控制台读取输入。
    • System.out.print("Enter an integer: ");:提示用户输入一个数字。
    • try { ... } catch (InputMismatchException e) { ... }:这是一个 try-catch 块,用于错误处理。try 块内的代码会被执行。如果发生 InputMismatchException(即输入不是整数),则执行 catch 块内的代码。
    • int number = scanner.nextInt();:这行代码尝试从用户输入中读取一个整数。如果用户输入的内容无法被解释为整数,则会抛出 InputMismatchException
    • System.out.println("Invalid input. Please enter an integer.");:如果捕获到 InputMismatchException,则会打印此消息。
    • finally { scanner.close(); }finally 块内的代码无论是否发生异常都会被执行。这里用于关闭 Scanner 资源。
  3. 保存文件。

  4. 在终端中编译修改后的程序:

    javac EvenCheck.java
  5. 运行程序:

    java EvenCheck
  6. 当出现提示时,输入一个整数(例如 15)并按回车键。程序应该能正确判断它是偶数还是奇数。

    Enter an integer: 15
    15 is an odd number.
  7. 再次运行程序:

    java EvenCheck
  8. 这次,当出现提示时,输入一个非整数值(例如 hello3.14)并按回车键。现在程序应该能够妥善处理无效输入。

    Enter an integer: hello
    Invalid input. Please enter an integer.

通过添加 try-catch 块,我们的程序现在更加健壮,能够处理用户提供的不符合预期格式的输入。这是编写用户友好程序的一个重要方面。

总结

在这个实验中,我们学习了如何在 Java 中使用取模运算符 (%) 来检查一个数字是否为偶数。我们发现,一个偶数除以 2 的余数为 0。我们使用 if-else 语句实现了一个简单的 Java 程序,用于执行此检查并输出给定整数是偶数还是奇数。

我们进一步探索了使用正整数和负整数输入来测试偶数检查,以确保取模运算符在不同符号的情况下都能按预期工作。最后,我们考虑了如何处理非整数输入,了解到取模运算符通常用于整数类型,并讨论了在更健壮的应用程序中验证输入类型或处理异常的潜在方法。