我正在編寫一個簡單的 Java 程序來進行溫度轉換,但我在第 8 行(我在下面的代碼中已標記)不斷收到錯誤,提示無法取消引用 int。我不確定這到底是什么意思,或者如何解決它,這里有相同錯誤的其他問題無助于為我的錯誤找到解決方案。問題是:具有以下格式: ?<int><int><int><int>我要解決?在這種情況下,但考慮到第二個向量乘以 3,第三個向量乘以 1,第四個向量乘以 0,最后一個向量被減去。class LeaderBoard{ public static void main(String[] args){ String errorFormat = "Format error: You must write 4 integers and one symbol ?"; int[] list = null; int position = -1, j = 0; if(args.length!=5){ System.err.println(errorFormat); }else{ try { list = new int[4]; for(int i=0;i<args.length;i++){ if(position== -1 && args[i].equals("?")){ position = i; }else if((position!= -1 && args[i].equals("?")) || (j==4)){ //Hay mas de un ? o no hay ? System.err.println(errorFormat); System.exit(1); }else{ list[j] = Integer.parseInt(args[i]); j++; } } } catch (NumberFormatException e) { System.err.println(errorFormat); System.exit(1); } System.out.println("The missing value is "+calculate(position,list)); } }static int calculate(int position, int[] list){ position=0; for (int i=0; i<list.length; i++){ if(list[1]==0){position=list[1]*3+list[2]*1+list[3]*0+list[4]*(-1); } } return 0; }}當我執行程序時,結果總是得到值 0,雖然我更改了輸入值。有人可以幫助我嗎?
2 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
list[1]
是原始類型。你不能在它上面調用方法。因此,當您嘗試調用equal
(您是說equals()
嗎?)時,您會收到錯誤消息。
除此之外,你的邏輯沒有意義。您正在嘗試將 anint
與 aString
進行比較,然后將布爾結果與另一個進行比較int

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
在您的calculate函數中,您正在傳遞,position但您甚至沒有使用它并分配0給它。
當 i=1 時,for 循環也會拋出異常,因為您的代碼將嘗試訪問不存在的 list[i+4]=list[5] ,因此將獲取ArrayIndexOutOfBound Exception.
由于您的數組僅包含 int 類型,因此您無需擔心?as 的位置?不是 int 類型,您可以使用以下代碼:
static int calculate(int[] list){
int position=0;
int calculatedValue = list[position]*3+list[position+1]*1+list[position+2]*0+list[position+3]*(-1);
return calculatedValue ;
}
添加回答
舉報
0/150
提交
取消