亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:int 不能被取消引用 java(重復)

錯誤:int 不能被取消引用 java(重復)

狐的傳說 2021-10-27 13:49:10
我正在編寫一個簡單的 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


查看完整回答
反對 回復 2021-10-27
?
小怪獸愛吃肉

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 ;   

}


查看完整回答
反對 回復 2021-10-27
  • 2 回答
  • 0 關注
  • 487 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號