首页 > 解决方案 > 等于运算符不在 if 语句中工作

问题描述

由于某种原因,我的程序不允许使用 if 语句 if (arr == arr[i]),表示 == 运算符不能应用于 double[], double。但是,它适用于我的朋友计划。为什么它不起作用,我该如何解决?这是我的代码:

import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("What length (in a whole number) would you like the array to be? ");
        int arraySize = sc.nextInt();

        double[] arr = new double[arraySize];
        for (int i = 0; i < arraySize; i++) {
            int requiredInput = arraySize - i;
            System.out.println("Please enter " + requiredInput + " more 'double' numbers.");
            arr[i] = sc.nextDouble();
        }

        System.out.println("What 'double' would you like to find the first and last indexes of?");
        double searchIndex = sc.nextDouble();

        for (int i = 0; i <= arraySize; i++) {
            if (arr == arr[i]) {

            }
        }

            System.out.println(Arrays.toString(arr));

      
    }
}

标签: javaarraysequals

解决方案


如果searchIndex是要搜索的双精度值,那么您if()应该如下所示。

if (arr[i] == searchIndex) {
     indexPresent = true;
     break;
}

推荐阅读