我已经完成了我的研究,但无法找到解决方案。
好的,所以这段代码应该有一个接受整数的方法,并根据评估结果返回true或false。主类包含一个循环,它生成传递给方法的随机数。然后该方法检查数字是负数还是正数并返回结果。对我来说,一切看起来都很正确但是由于我的程序不起作用,所以我必须看到一些东西。任何建议都会很感激。
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;
}
}
}
答案 0 :(得分:2)
您可以整理您的代码,但它可以广泛地执行您希望它执行的操作
public class IsNegative {
public static void main(String... args) {
int negatives = 0, nonNegatives = 0;
Random rand = new Random();
for (int i = 0; i <= 99; i++) {
int number = rand.nextInt(201)-100;
if (isNegative(number))
negatives++;
else
nonNegatives++;
}
System.out.printf("Number of negatives: %d%n", negatives);
System.out.printf("Number of non-negatives: %d%n", nonNegatives);
}
public static boolean isNegative(int test) {
return test < 0;
}
}
注意:0
不是负数或正数。
顺便说一句:没有%i
,很可能你打算用%d
表示小数。
如果您想了解有关如何使用格式化程序的更多信息,建议您阅读Formatter Javadoc。
答案 1 :(得分:0)
random.nextInt()只能生成值> = 0 所以如果你想生成-100和+100,你应该使用这样的东西:
Random r = new Random();
public int rand(){
int num=r.nextInt(10000);
if(num>5000){
return r.nextInt(100);
}else{
return -r.nextInt(100);
}
}
您可以更改并调整获得负数的可能性