передача массива в метод и поиск ключа возвращает только условие else - PullRequest
0 голосов
/ 16 марта 2019

Я передаю целочисленный массив методу и ищу KEY, но он возвращает 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";
    }




}

Ответы [ 2 ]

2 голосов
/ 16 марта 2019

Внимательно прочитайте ваш код.Вы вводите цикл, затем проверяете первый элемент (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";
0 голосов
/ 16 марта 2019
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;
}
...