在我的在线Java编程课上,我需要编写一个程序,用户输入自己的年龄,然后检查年龄是否在0到125之间。如果不在0到125之间,它会显示一个错误代码,我需要使用Assert来完成这一操作。
import java.util.Scanner;
public class eproject1 {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.print("What is your age? ");
int num = input.nextInt();
System.out.println(num);
assert(num >= 1 && num < 125);
System.out.printf("You entered %d\n", num); // NEED TO FIX, SOMETHING ISN'T RIGHT
}
}
问题是它会告诉您输入的年龄,即使它不在1到124的范围内。研究表明我需要实际启用Assert,但我在网上找到的结果非常没有帮助,因为它们涉及到一些Eclipse的东西-我敢肯定这是某种新手的错误,因为我不太擅长编程。
那么......如何让Assert的东西工作呢?
3条答案
按热度按时间aemubtdh1#
java -ea <program_name>
应该在命令提示符下执行此操作。您可以分别对intellJ和eclipse尝试以下操作。
k5ifujac2#
第一个月第一个月〉第一个月第一个月〉第一个月第二个月〉第一个月第三个月:将
-ea
输入到VM选项wfauudbj3#
在我的在线Java编程课上,我必须编写一个程序,让用户输入他们的年龄,并检查年龄是否在0到125之间--如果不在0到125之间,它将显示一个错误代码,我需要使用Assert来完成这一操作。
这一做法被误导了。
应该使用JavaAssertnever实现错误检查控制流。
不要使用Assert执行应用程序正确操作所需的任何工作。
因为Assert可能被禁用,所以程序不能假设Assert中包含的布尔表达式将被求值。违反这一规则会有可怕的后果。例如,假设你想从一个列表名称中删除所有的null元素,并且知道该列表包含一个或多个null。
一个失败的Assert应该表明你的代码中有一个错误。给程序提供错误的参数并不是错误;这只是一个常规错误。
实现这类事情并不需要Assert,如果你想在这样的用户错误时使应用程序崩溃,可以使用某种异常。