为什么我的 ArrayList 没有打印出 Java 中所需的输出?
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 的一部分,但实际上不是。知道该怎么做吗?
Directions for main method
Directions for my method
My output
- 您正在分配而不是比较
if (numberFound = true)
。它应该是 if (numberFound == true)
,或者更简单地说是 if (numberFound)
。
- 您的函数
listContains()
return 是一个布尔值,您需要将其分配给 numberFound
。
numberFound = listContains(4);
或者你可以直接在if
条件下使用它,
if(listContains(4)) { }
- 您的函数
listContains()
有问题。如果找到它应该 return true
如果没有找到它应该 false
在遍历所有元素之后,你不是。在第 1 次迭代中,如果比较是 false
,您将打破循环,即 return false
for (int x: listOfNumbers)
{
if (param1 == x)
{
return true;
}
}
return false;
如果按照您的class指示
boolean found = false;
for (int x: listOfNumbers)
{
if (param1 == x)
{
found = true;
break; // with this you can skip remaining unnecessary iteration
}
}
return found;
这里是相当新的用户,我们正在学习 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 的一部分,但实际上不是。知道该怎么做吗?
Directions for main method
Directions for my method
My output
- 您正在分配而不是比较
if (numberFound = true)
。它应该是if (numberFound == true)
,或者更简单地说是if (numberFound)
。 - 您的函数
listContains()
return 是一个布尔值,您需要将其分配给numberFound
。
numberFound = listContains(4);
或者你可以直接在if
条件下使用它,
if(listContains(4)) { }
- 您的函数
listContains()
有问题。如果找到它应该 returntrue
如果没有找到它应该false
在遍历所有元素之后,你不是。在第 1 次迭代中,如果比较是false
,您将打破循环,即 returnfalse
for (int x: listOfNumbers)
{
if (param1 == x)
{
return true;
}
}
return false;
如果按照您的class指示
boolean found = false;
for (int x: listOfNumbers)
{
if (param1 == x)
{
found = true;
break; // with this you can skip remaining unnecessary iteration
}
}
return found;