public class TestForMatch2
{
public static void main(String[] args)
{
int[] numbers1 = {0,2,4,6,7,11,0};
int[] numbers2 = {-7,5,9,10,5,0};
System.out.println(findTarget(numbers1,5));
System.out.println(findTarget(numbers1,0));
System.out.println(findTarget(numbers2,5));
System.out.println(findTarget(numbers1,-1));
}
public static int findTarget(int[] arr, int target)
{
if (arr == null) {
return -1;
}
int y = 0;
int g = 0;
for(int i = 0; i <= arr.length-1; i++) {
if (target == arr[i]) {
y = i;
//return y;
}
}
System.out.println(y);
return -1;
}
}
Output:
0
-1
6
-1
4
-1
0
-1
如您所见,正在打印-1。如果我删除了返回-1,它将给我一个错误。如何清除没有错误的-1?
这就是要做的事情。
编写Java方法来测试整数数组是否包含特定值。 如果值在数组中,则返回元素的索引。如果该值不止一次,则该方法将返回该值最后一次出现的索引。 如果该值不在数组中,则返回-1。
复制并粘贴以下代码。然后完成该方法。
public class Main
{
public static void main(String[] args)
{
int[] numbers1 = {0,2,4,6,7,11,0};
int[] numbers2 = {-7,5,9,10,5,0};
System.out.println(findTarget(numbers1,5));
System.out.println(findTarget(numbers1,0));
System.out.println(findTarget(numbers2,5));
System.out.println(findTarget(numbers1,-1));
}
public static int findTarget(int[] arr, int target)
{
//Type your code here
}
}
这是期望的结果。忽略左侧的数字。我将其放在此处以强调第5号的空格。谢谢您的时间。
1 -1
2 6
3 4
4 -1
5
答案 0 :(得分:1)
public static void main(String[] args)
{
int[] numbers1 = {0,2,4,6,7,11,0};
int[] numbers2 = {-7,5,9,10,5,0};
System.out.println(findTarget(numbers1,5));
System.out.println(findTarget(numbers1,0));
System.out.println(findTarget(numbers2,5));
System.out.println(findTarget(numbers1,-1));
}
public static int findTarget(int[] arr, int target)
{
if (arr == null) {
return -1;
}
int targetIndex = -1;
for(int i = 0; i <= arr.length-1; i++) {
if (target == arr[i]) {
targetIndex = i;
}
}
return targetIndex;
}
创建一个变量targetIndex,该变量将保留目标元素的索引,最初为-1,如果我们在索引i处找到目标元素,则targetIndex变为i,然后将其返回。
答案 1 :(得分:0)
初始化y = -1
并返回y
,无论您输入什么函数,都将返回-1
。
答案 2 :(得分:0)
您每次迭代System.out
做过两次。你知道为什么吗?
您始终打印y是-首先System.out()
:
System.out.println(y);
然后您总是返回-1:
return -1;
打印什么也可以-第二System.out()
:
System.out.println(findTarget(numbers1,5));
您说:“如果我删除返回-1,则会给我一个错误。”
->您必须返回一个整数,因为您的方法显示为“ public static int findTarget(int [] arr,int target)”。因此,如果您return -1
是一个整数,则会编译它,因为-1
是整数,而且如果您还返回y
,因为您还为y
分配了一个整数。
因此将findTarget()
更改为以下内容:
public static int findTarget(int[] arr, int target)
{
if (arr == null) {
return -1;
}
int y = -1;
for(int i = 0; i <= arr.length-1; i++) {
if (target == arr[i]) {
y = i;
}
}
return y;
}
答案 3 :(得分:0)
这是解决方案。
public static void main(String[] args)
{
int[] numbers1 = {0,2,4,6,7,11,0};
int[] numbers2 = {-7,5,9,10,5,0};
System.out.println(findTarget(numbers1,5));
System.out.println(findTarget(numbers1,0));
System.out.println(findTarget(numbers2,5));
System.out.println(findTarget(numbers1,-1));
}
public static int findTarget(int[] arr, int target)
{
int index = -1;
if(null != arr) {
for(int i=0;i<arr.length;i++) {
if(arr[i] == target) {
index = i;
}
}
}
return index;
}