Java新手:
我使用for循环迭代一个数组并检查它的值。 例如:如果数组包含数字100.然后执行某些操作, 但是,如果它没有获得当前变量的当前值。
检查时是否可以获取当前变量的值?
目前,当我使用else打印时,我会打印出所有内容。
像这样:
1
2
3
Found Something!
请原谅我的无知。只是试验:
public class MyArrayExample {
private int[] intArray = new int[] {1, 2, 3, 100};
public int[] getArrayValues() {
return intArray;
}
public static void main(String[] args)
{
MyArrayExample example = new MyArrayExample();
int[] arrayValues = example.getArrayValues();
for(int counter=0; counter<arrayValues.length; counter++) {
int current = arrayValues[counter];
if(current == 100)
{
System.out.println("Found Something!");
}
else{
System.out.println(current);
}
}
}
}
答案 0 :(得分:1)
要在检查时获取 current 的值,请在for循环外声明它以便能够访问变量值并添加一个布尔标志isFound:
int current = 0;
boolean isFound = false;
for(int counter=0; counter<arrayValues.length; counter++) {
current = arrayValues[counter];
if(current == 100)
{
isFound = true;
// do something
}
}
然后,一旦检查完成,您就可以获得当前的值或打印找到的东西:
if (isFound) {
System.out.println("Found Something!");
} else {
System.out.println("current: " + current);
}
请注意。如果您要查找的值不在数组中,则 current 始终使用数组中的最后一个值进行分配。
答案 1 :(得分:0)
作为补充 - 您甚至不必自己编写循环,您可以使用现有的数组/集合方法,例如:
Integer[] intArray = new Integer[] {1, 2, 3, 100}; List<Integer> myList = Arrays.asList(intArray); System.out.println(myList.contains(100)); // checks if 100 exists in your array System.out.println(myList.indexOf(100)); // shows the position of the element 100