[英]Java Testing if a variable equals a value in the array if not print -1
我需要查看何时首先出现数组中的给定变量值,并且一旦发生该变量,则将该变量更改为首次出现时的数字,如果未发生,则将该值更改为-1。 例如32在数组中首先出现,因此它应该打印1,但是100从不出现在数组中,所以它应该打印-1,但是我该如何在循环中添加第二个if语句,以使变量为-1,但是它将测试找到它的原始值。 对不起,如果我没有很好地解释它。
这是循环的代码和第一个if语句
public static int occurrence(int[] a) {
Scanner scnr = new Scanner(System.in);
int occurrence = scnr.nextInt();
for (int i = 0; i < a.length; i++)
if (a[i] == occurrence)
occurrence = i + 1;
return occurrence;
JDK库附带一个Arrays类,用于处理此类情况。
首先,导入类:
import java.util.Arrays;
现在您要做的就是:
System.out.println(Arrays.binarySearch(a, occurrence));
基本上就是这样。 “ binarySearch()”方法采用两个参数,这两个参数分别是您要引用的数组的名称(a)和要在该数组中搜索的值(出现)。 然后,它返回值的索引。 如果在数组中找不到该值,则返回-1。
看看这个。 尝试将输入代码(扫描器)与功能逻辑分开。 这将使发生方法可重用。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int data[] = { 2,5,7};
Scanner scnr = new Scanner(System.in);
int inputValue = scnr.nextInt();
int index = occurrence( data, inputValue);
System.out.println("value at index: " + index);
}
//
// find first match, then exit the loop if found.
//
public static int occurrence(int[] a, int inputValue) {
int result = -1;
for (int i = 0; i < a.length; i++)
if (a[i] == inputValue) {
result = i;
break;
}
return result;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.