【发布时间】:2016-05-22 09:00:39
【问题描述】:
程序应该返回一个序列中有多少个正数和负数。
main 方法将从输入中读取一系列数字,并使用下面的此方法评估每个数字是正数还是负数。
public static int positiveOrNegativeNumber(int n) {
int positiveNumber; //counter for positive numbers
int negativeNumber; //counter for negative numbers
positiveNumber=0;
negativeNumber=0;
if (n>0) {
positiveNumber = positiveNumber + 1;
} else if (n<0) {
negativeNumber = negativeNumber + 1;
}
return positiveNumber & negativeNumber;
}
表达式 return positiveNumber 和negativeNumber 是否同时返回它们?
编辑:所以,按照 Java Geo 的建议,我得到了这个:
public static NumCounter positiveOrNegativeNumber(int n, NumCounter numCounter) {
if (n>0) {
numCounter.setPositiveNumCounter(numCounter.getPositiveNumCounter()+1);
} else if (n<0) {
numCounter.setNegativeNumCounter(numCounter.getNegativeNumCounter()+1);
}
return numCounter;
}
但是我不知道应该在 main 方法中添加什么来打印出来
public static void main(String[] args) {
int n;
while(!Lettore.in.eoln()) { //while the line has not ended
n = Lettore.in.leggiInt(); //read n from input
// what is missing here??
}
}
不用担心 Lettore.in.eoln 和 Lettore.in.leggiInt,这些方法可以让您更轻松地从输入中获取内容,而无需使用扫描仪。
【问题讨论】:
-
对于您问题的第二部分,否。
&表示“按位与”(除非 Java 在这方面与其他语言有完全不同的语法),并不意味着“返回这两者”。 -
可以将方法的返回类型改为
int[],返回return new int[]{positiveNumber, negativeNumber} -
你的方法只得到一个数,所以它只能返回正数或负数,但不能计算多少正数和负数.
-
如果您想同时跟踪这两个数字,请将它们放入地图或自定义对象中并返回。