【发布时间】:2015-01-16 23:55:07
【问题描述】:
我已完成研究,但找不到解决方案。
好的,所以这段代码应该有一个接受整数并根据评估结果返回真或假的方法。主类包含一个循环,该循环生成传递给方法的随机数。然后该方法检查数字是负数还是正数并返回结果。对我来说,一切看起来都很正确。但是由于我的程序不起作用,所以肯定有一些我没有看到的东西。任何建议将不胜感激。
public class isNegative {
public static void main(String[] args) {
int negatives = 0;
int positives = 0;
int number = 0;
boolean result = false;
for (int i = 0; i < 99; i++) {
Random rand = new Random();
number = rand.nextInt(201)-100;
result = isNegative(number);
if (result == false) {
positives += 1;
} else {
negatives += 1;
}
}
//boolean status = false;
System.out.printf("Number of negatives: %i\n", negatives);
System.out.printf("Number of positives: %i\n", positives);
}
public static boolean isNegative(int test) {
if (test <= 0) {
return true;
} else {
return false;
}
}
}
【问题讨论】:
-
而“不起作用”被定义为...?
-
当你可以将它移到 for 循环之上并且不会浪费内存时,你到底为什么要创建 99 个随机数
-
我同意@EpicPandaForce。另外,我强烈建议在调试期间为 Random 使用种子。这样,您可以连续多次执行相同的测试,而不是每次都有不同的输入。
-
顺便说一句,这是因为 1.) 即使
0不是负数,您也会返回isNegative == true,即使0不是负数,以及 2.) 因为您应该只使用System.out.println("Number of negatives: " + negatives);和 @987654325 @. -
@EpicPandaForce 是对的。我所做的是 System.out.println("Number ofnegatives:" +negatives);并且完全有效。非常感谢。