передача массива методу и поиск ключа возвращает только условие else

#java #arrays #return

#java #массивы #Возврат

Вопрос:

Я передаю целочисленный массив методу и ищу КЛЮЧ, но он возвращает noo, даже если ключ присутствует

 class ArraySearch
{

    public static void main(String[] args) 
    {
        int[] arr={1,2,4,4,5};

        int k=5;

        System.out.println(findArray(arr,k));


    }

    public static String findArray( int arr[],int key)
    {
        for(int i=0;i<arr.length;i  )
        {
            //System.out.println(arr[i]);
            if(arr[i]==key)
            return "YESS";

            else
            return "NOOO";//only this part is returned even if key id found
        }
        return "hoohah";
    }




}
  

Комментарии:

1. Это должно сработать, если вы ищете первый ключ (в данном случае 1).

Ответ №1:

Внимательно прочитайте свой код. Вы входите в цикл, затем проверяете для первого элемента (i = 0), равен ли он ключу. Если нет ( else ), вы возвращаетесь немедленно, без поиска в остальной части массива.

Для поиска вы должны выполнить поиск по всему массиву.

 for(int i=0;i<arr.length;i  )
{
    if(arr[i]==key)
       return "YESS";
}
// if we get here we searched the entire array
return "NOOO";
  

Ответ №2:

 public static String findArray( int arr[],int key)
{
    String status = "no";
    for(int i=0;i<arr.length;i  )
    {
        //System.out.println(arr[i]);
        if(arr[i]==key){
        status = "YESS";
   } 
    }
    return status;
}