[英]Why doesn't my ArrayList print out the output desired in Java?
这里的新用户,我们正在学习 Java 中的方法并尝试使用 ArrayList 测试它们,但它没有给出所需的输出。
这是我创建的两种方法:
// initialize the ArrayList declared in the class block and add some test data to it
private static void addTestData()
{
listOfNumbers = new ArrayList<>();
listOfNumbers.add(23);
listOfNumbers.add(34);
listOfNumbers.add(45);
listOfNumbers.add(56);
}
// returns a true or a false value indicating if a number provided to it is present in an ArrayList
private static boolean listContains(int param1)
{
boolean found = false;
for (int x: listOfNumbers)
{
if (param1 == x)
{
found = true;
}
else
break;
}
return found;
}
我的目标是在 main 方法中测试“4”和“56”是否是 ArrayList 的一部分,所以这是我的代码:
boolean numberFound = false;
addTestData();
System.out.println("*** Testing ArrayList Search ***");
System.out.println("I am going to test if the number 4 is in the ArrayList.");
listContains(4);
numberFound = false;
if (numberFound = true)
System.out.println("The number 4 was found.");
else
System.out.println("The number 4 was not found.");
System.out.println("");
numberFound = false;
addTestData();
System.out.println("I am going to test if the number 56 is in the ArrayList");
listContains(56);
if (numberFound = true)
System.out.println("The number 56 was found.");
else
System.out.println("The number 56 was not found.");
我的输出告诉我 4 是 ArrayList 的一部分,而实际上它不是。 知道该怎么做吗?
if (numberFound = true)
。 它应该是if (numberFound == true)
,或者更简单的if (numberFound)
。listContains()
返回一个布尔值,您需要将其分配给numberFound
。numberFound = listContains(4);
或者你可以直接在if
条件下使用它,
if(listContains(4)) { }
listContains()
有问题。 在遍历所有元素后,如果找到它,它应该返回true
,否则返回false
,而你不是。 在第一次迭代时,如果比较为false
,则您正在破坏循环,该循环返回false
for (int x: listOfNumbers)
{
if (param1 == x)
{
return true;
}
}
return false;
如果根据你的课堂指示
boolean found = false;
for (int x: listOfNumbers)
{
if (param1 == x)
{
found = true;
break; // with this you can skip remaining unnecessary iteration
}
}
return found;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.