如何在 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") subgraph Lab Skills java/data_types -.-> lab-559967{{"如何在 Java 中检查一个数是否为奇数"}} java/operators -.-> lab-559967{{"如何在 Java 中检查一个数是否为奇数"}} java/if_else -.-> lab-559967{{"如何在 Java 中检查一个数是否为奇数"}} java/user_input -.-> lab-559967{{"如何在 Java 中检查一个数是否为奇数"}} end

应用取模运算符检查奇数

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

如果一个数能被 2 整除,即它除以 2 的余数为 0,那么这个数就是偶数;如果一个数除以 2 的余数为 1,那么这个数就是奇数。

让我们创建一个新的 Java 程序来检查一个数是否为奇数。

  1. 如果 HelloJava.java 文件尚未在 WebIDE 编辑器中打开,请打开它。

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

    import java.util.Scanner;
    
    public class HelloJava {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("Enter an integer: ");
            int number = scanner.nextInt();
    
            // 使用取模运算符检查数字是否为奇数
            if (number % 2 != 0) {
                System.out.println(number + " is an odd number.");
            } else {
                System.out.println(number + " is an even number.");
            }
    
            scanner.close();
        }
    }

    让我们来看看代码的新增部分:

    • int number = scanner.nextInt();:这行代码读取用户输入的整数值,并将其存储在名为 number 的变量中。
    • if (number % 2 != 0):这是一个 if 语句,它使我们的程序能够做出决策。它检查 number 除以 2 的余数是否 不等于 0。!= 符号表示“不等于”。
    • System.out.println(number + " is an odd number.");:如果 if 语句中的条件为真(该数为奇数),则执行这行代码。
    • else:这个关键字引入了一个代码块,当 if 语句中的条件为假(该数为偶数)时执行。
    • System.out.println(number + " is an even number.");:如果该数为偶数,则执行这行代码。
  3. 保存文件(Ctrl+S 或 Cmd+S)。

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

    javac HelloJava.java

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

  5. 运行编译后的程序:

    java HelloJava
  6. 程序会提示你输入一个整数。输入一个数字(例如 7)并按回车键。程序会告诉你该数是奇数还是偶数。

    Enter an integer: 7
    7 is an odd number.

    再次运行程序并输入一个偶数(例如 10)。

    Enter an integer: 10
    10 is an even number.

你已经成功使用取模运算符和 if-else 语句来检查一个数是奇数还是偶数。这是编程中基于条件控制程序流程的一个基本概念。

使用各种数字类型进行验证

在上一步中,我们成功地检查了一个整数是奇数还是偶数。现在,让我们来探究取模运算符在不同类型数字上的表现,尤其关注负整数。

奇数和偶数的概念通常适用于整数。不过,了解取模运算符在 Java 中对负数的处理方式很重要,因为它的行为可能与你基于数学定义的预期不同。

在 Java 中,取模运算 (a % b) 的结果与被除数 (a) 的符号相同。

让我们修改程序以测试负数。

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

  2. 当前代码已经可以读取一个整数。我们可以使用相同的代码,只需在运行程序时输入负数即可。

    import java.util.Scanner;
    
    public class HelloJava {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            System.out.print("Enter an integer: ");
            int number = scanner.nextInt();
    
            // 使用取模运算符检查数字是否为奇数
            if (number % 2 != 0) {
                System.out.println(number + " is an odd number.");
            } else {
                System.out.println(number + " is an even number.");
            }
    
            scanner.close();
        }
    }
  3. 保存文件(Ctrl+S 或 Cmd+S)。

  4. 再次编译程序,确保使用的是最新版本:

    javac HelloJava.java
  5. 运行程序:

    java HelloJava
  6. 当提示输入时,输入一个负奇数(例如 -7)并观察输出。

    Enter an integer: -7
    -7 is an odd number.

    输出正确地将 -7 识别为奇数,因为 -7 除以 2 商为 -3,余数为 -1。由于 -1 不等于 0,if 条件 number % 2 != 0 为真。

  7. 再次运行程序并输入一个负偶数(例如 -10)。

    Enter an integer: -10
    -10 is an even number.

    输出正确地将 -10 识别为偶数,因为 -10 除以 2 商为 -5,余数为 0。if 条件 number % 2 != 0 为假,因此执行 else 块。

这表明我们当前使用取模运算符检查奇数/偶数的逻辑在 Java 中对正整数和负整数都能正确工作。关键在于,奇数除以 2 的余数始终不为零(要么是 1 要么是 -1),而偶数除以 2 的余数始终为 0。

合并奇偶检查

在前面的步骤中,你学习了如何使用取模运算符来检查一个数是奇数还是偶数。当前的程序已经使用 if-else 语句处理了这两种情况。

在这一步中,你将回顾代码,确保理解 if-else 结构是如何有效地合并对偶数和奇数的检查的。

回顾上一步中使用的代码:

import java.util.Scanner;

public class HelloJava {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter an integer: ");
        int number = scanner.nextInt();

        // 使用取模运算符检查数字是否为奇数
        if (number % 2 != 0) {
            System.out.println(number + " is an odd number.");
        } else {
            System.out.println(number + " is an even number.");
        }

        scanner.close();
    }
}

让我们再次拆解这个逻辑:

  • 条件 number % 2 != 0 检查 number 除以 2 的余数是否 不等于 0。
  • 如果这个条件为 true,则意味着该数是奇数,if 块内的代码将被执行:System.out.println(number + " is an odd number.");
  • 如果条件 number % 2 != 0false,则意味着余数 等于 0。在这种情况下,该数必定是偶数,else 块内的代码将被执行:System.out.println(number + " is an even number.");

这种 if-else 结构是处理两种互斥情况(一个数要么是奇数,要么是偶数)的常见方式。你不需要单独检查偶数,因为对于整数来说,如果一个数不是奇数,那它必定是偶数。

要完成这一步,只需确保你的 HelloJava.java 文件包含上述正确的代码。

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

  2. 验证代码是否与上面提供的示例一致,包括 import 语句、Scanner 的使用、提示信息、读取整数、带有取模检查的 if-else 语句以及关闭 Scanner

  3. 如果你进行了任何更改,请保存文件(Ctrl+S 或 Cmd+S)。

  4. 最后再编译一次程序以确保无误:

    javac HelloJava.java
  5. 运行程序,并使用奇数和偶数(正数和负数)进行测试,以确认它按预期工作。

    java HelloJava

    奇数的示例输出:

    Enter an integer: 9
    9 is an odd number.

    偶数的示例输出:

    Enter an integer: -4
    -4 is an even number.

你现在已经成功实现并验证了一个 Java 程序,该程序使用取模运算符和 if-else 语句来判断一个整数是奇数还是偶数。这种条件逻辑的基本概念对于构建更复杂的程序至关重要。

总结

在本次实验中,你学习了如何在 Java 中使用取模运算符 (%) 来判断一个数是奇数还是偶数。你了解到,如果一个数除以 2 的余数为 0,则该数为偶数;如果余数为 1,则该数为奇数。你在一个 Java 程序中实现了这一逻辑,该程序会获取用户输入,并输出该数是奇数还是偶数。

你还探究了如何使用各种数字类型验证这一检查,以及如何使用 if-else 语句在单个程序中合并对偶数和奇数的检查逻辑。通过这次实践,你对 Java 中用于基本数字属性检查的条件语句和取模运算符有了实际的理解。