介绍
在这个实验中,你将学习如何在 Java 中检查一个数字是否在特定范围内。我们将涵盖使用下限和上限定义数值范围的基本概念,利用逻辑运算符进行范围检查,以及理解如何在范围比较中包含边界值。通过实践练习,你将获得在 Java 代码中实现这些技术的实际经验。
使用下限和上限定义范围
在这一步中,你将学习如何在 Java 中使用下限和上限来定义一个数值范围。理解如何处理范围是编程中的一个基本概念,它能让你检查一个值是否在特定的数字集合内。
范围简单来说就是从起始点(下限)到结束点(上限)之间的一组数字。例如,1 到 10 之间的范围包括从 1 到 10 的所有数字。
让我们创建一个简单的 Java 程序来定义和处理范围。
如果
HelloJava.java文件尚未在 WebIDE 编辑器中打开,请打开它。我们将修改这个文件来编写新程序。将文件的全部内容替换为以下代码:
public class HelloJava { public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Print the defined range System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); } }让我们来看看这段代码的新增部分:
int lowerBound = 10;:这行代码声明了一个名为lowerBound的整数变量,并将其赋值为 10。这是我们范围的起始点。int upperBound = 50;:这行代码声明了一个名为upperBound的整数变量,并将其赋值为 50。这是我们范围的结束点。System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]");:这行代码向控制台打印一条消息,显示使用lowerBound和upperBound值定义的范围。+符号用于组合文本字符串和变量值。
保存文件(Ctrl+S 或 Cmd+S)。
现在,让我们编译修改后的程序。打开 WebIDE 底部的终端,并确保你位于
~/project目录中。然后,运行以下命令:javac HelloJava.java如果没有错误,说明编译成功。
最后,让我们运行程序以查看输出。在终端中运行:
java HelloJava你应该会看到以下输出:
Defined Range: [10, 50]这证实了我们的程序正确地定义并打印出了范围的下限和上限。
在下一步中,我们将学习如何使用逻辑运算符来检查一个数字是否在这个定义的范围内。
使用逻辑运算符进行范围检查
在这一步中,你将学习如何在 Java 中使用逻辑运算符来检查一个数字是否在我们上一步定义的范围内。逻辑运算符用于组合或修改布尔表达式(即结果为真或假的表达式)。
要检查一个数字是否在由下限和上限定义的范围内,我们需要检查两个条件:
- 该数字是否大于或等于下限?
- 该数字是否小于或等于上限?
只有当这两个条件都为真时,该数字才在范围内。在 Java 中,我们使用逻辑与运算符 (&&) 来组合这两个条件。
让我们修改 HelloJava.java 程序以包含此范围检查。
在 WebIDE 编辑器中打开
HelloJava.java文件。修改
main方法,添加一个用于检查的数字变量和范围检查逻辑。将现有的main方法内容替换为以下内容:public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Define the number to check int numberToCheck = 35; // Check if the number is within the range using logical operators boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound); // Print the result System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); System.out.println("Number to Check: " + numberToCheck); System.out.println("Is " + numberToCheck + " within the range? " + isInRange); }以下是我们添加的内容:
int numberToCheck = 35;:这行代码声明了一个整数变量numberToCheck,并将其赋值为 35。这是我们要针对范围进行检查的数字。boolean isInRange = (numberToCheck >= lowerBound) && (numberToCheck <= upperBound);:这是范围检查的核心。numberToCheck >= lowerBound:此表达式检查numberToCheck是否大于或等于lowerBound。numberToCheck <= upperBound:此表达式检查numberToCheck是否小于或等于upperBound。&&:这是逻辑与运算符。只有当它左边的条件和右边的条件都为true时,它才返回true。- 整个表达式的结果(
true或false)存储在一个名为isInRange的布尔变量中。
System.out.println语句现在还会打印正在检查的数字和范围检查的结果。
保存文件(Ctrl+S 或 Cmd+S)。
在终端中编译修改后的程序:
javac HelloJava.java运行编译后的程序:
java HelloJava你应该会看到类似以下的输出:
Defined Range: [10, 50] Number to Check: 35 Is 35 within the range? true由于 35 确实在 10 到 50 之间(包含边界值),程序正确输出了
true。
尝试将 numberToCheck 的值更改为范围之外的数字(例如 5 或 60),然后重新编译并运行程序,观察输出的变化。
在范围中包含边界值
在上一步中,我们使用 >=(大于或等于)和 <=(小于或等于)运算符来检查一个数字是否在某个范围内。这些运算符非常关键,因为它们在范围检查中包含了边界值(下限和上限)。
例如,如果我们的范围是 [10, 50],那么当一个数字是 10、50 或者是 10 到 50 之间的任何数字时,就认为该数字在这个范围内。如果我们使用 >(大于)和 <(小于)运算符,那么范围就变成了 (10, 50),这意味着 10 和 50 本身将 不 被包含在内。
让我们通过使用边界值测试程序来验证这种行为。
在 WebIDE 编辑器中打开
HelloJava.java文件。我们将使用下限和上限来测试范围检查。修改
main方法,将lowerBound和upperBound都作为numberToCheck进行测试。public class HelloJava { public static void main(String[] args) { // Define the lower and upper bounds of the range int lowerBound = 10; int upperBound = 50; // Test with the lower bound int numberToCheck1 = lowerBound; boolean isInRange1 = (numberToCheck1 >= lowerBound) && (numberToCheck1 <= upperBound); System.out.println("Defined Range: [" + lowerBound + ", " + upperBound + "]"); System.out.println("Number to Check: " + numberToCheck1); System.out.println("Is " + numberToCheck1 + " within the range? " + isInRange1); System.out.println("---"); // Separator for clarity // Test with the upper bound int numberToCheck2 = upperBound; boolean isInRange2 = (numberToCheck2 >= lowerBound) && (numberToCheck2 <= upperBound); System.out.println("Number to Check: " + numberToCheck2); System.out.println("Is " + numberToCheck2 + " within the range? " + isInRange2); } }我们添加了第二个测试用例,将
numberToCheck2设置为upperBound。保存文件(Ctrl+S 或 Cmd+S)。
在终端中编译修改后的程序:
javac HelloJava.java运行编译后的程序:
java HelloJava你应该会看到类似以下的输出:
Defined Range: [10, 50] Number to Check: 10 Is 10 within the range? true --- Number to Check: 50 Is 50 within the range? true如你所见,10(下限)和 50(上限)都被正确识别为在范围内,因为我们使用了
>=和<=运算符。这证实了我们的范围检查包含了边界值。
在程序中定义条件时,理解一个范围是包含其边界(闭区间)还是排除边界(开区间)非常重要。>= 和 <= 运算符创建的是闭区间范围。
总结
在本次实验中,你学习了如何在 Java 中通过使用整数变量设置下限和上限来定义一个数值范围。你修改了一个简单的 Java 程序,用于声明这些边界并将定义好的范围打印到控制台,同时了解了如何将文本和变量值组合起来进行输出。这一基础步骤对于后续检查某个数字是否在指定范围内至关重要。



