[英]incompatible types in java
我應該指出我對此是一個乞gg嗎?
double averageMonthlyTemp() {
double[] amt = new double[52];
int sum = 0;
int index = 0;
for (int i = 0; i < temp.length - 1; i = i + 7) {
//where temp is an existiing
//previously initialized array
//of 365 elements, form 0 to 364
for (int j = 0; j < 7; j++) {
sum = sum + temp[i + j];
if (j % 7 == 6) {
double average = ((double) sum) / 7;
amt[index] = average;
index++;
sum = (int) 0;
}
}
}
return amt;
}
嘗試編譯時,出現“不兼容類型”錯誤, return amt
處的“ amt”標記為紅色。 有人知道為什么嗎?
指定您的方法averageMonthlyTemp
以返回一些double
類型的值,但是您的amt
變量實際上是double[]
。 使averageMonthlyTmp
返回一個double
數組,或者執行以下操作:
double averageMonthlyTmp(int month) {
...
return tmp[month]; // could be made more efficient by only calculating the temperature for one month
}
有關代碼的其他一些注意事項:
j
從0到6(含0),所以if (j % 7 == 6)
可以替換為if (j == 6)
。 同樣,看起來代碼(計算平均值)可以在第二個for
循環之后直接執行。 i = i + 7
替換為i += 7
,則代碼會更整潔,這也會使i
每次增加7。 sum = (int) 0;
行中將(int)
放在0之前sum = (int) 0;
,因為Java知道當您只寫0
,就意味着一個int
。 您對averageMonthlyTemp
的方法定義說應該返回double
,即數據類型double
的單個值,但是您返回的amt
則是一個double數組,這就是編譯器抱怨的原因。 因此,您可以更改方法定義以返回數組或返回單個值。
返回的值amt是double[]
。 但是該函數僅返回一個double
值(而不是double的數組)。 所以嘗試將函數重命名為
double [] averagemonthlytemp()
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.