java - 将数组传递给方法并搜索键仅返回 else 条件
问题描述
我将一个整数数组传递给一个方法并搜索 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";
}
}
解决方案
仔细阅读您的代码。您进入循环,然后测试第一个元素 (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";
推荐阅读
- html - 如何使用 Bootstrap 创建多行组?
- python-3.x - 如何强制子类为抽象属性(在 Pycharm 中)实现 setter(和 getter)?
- spring-data-rest - Spring Data Rest 中 POST 的只读属性
- angularjs - Bearer error="invalid_token", error_description="The token is expired" in Asp.Net core Web APi with Angular 6 Azure ad
- inno-setup - 在 Inno 下载插件中自定义“正在下载”消息
- python - 基于特定子字符串的python正则表达式提取
- python - 这个代码块在这个程序中做了什么?
- node.js - 创建 nodejs webapp - azure 和 Visual Studio 代码
- c# - 性能差异 WndProc WM_PAINT 与 OnPaint
- python - 拦截来自本地 Web 应用程序的所有 REST 和 SOAP 请求和响应