为了账号安全,请及时绑定邮箱和手机立即绑定

错误: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 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信