如何使用 "Do While" 循环遍历列表
How to use a "Do While" loop to iterate through a list
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;
}
(仅JAVA)
P.s 这是我试过的一个函数,为了检查第一个参数,如果它包含一个大于第二个参数的数字,那么它将 return 为真,否则为 flase。
请注意,它正在使用 do while 循环。我只是不知道这段代码的哪一部分做错了,因为系统一直告诉我“java.lang.IndexOutOfBoundsException:索引 0 超出长度 0 的范围”。
谢谢你,任何提示都会非常有用。
您的整数列表是空的。您无法访问空列表的索引:
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
if (numbers.isEmpty()) return false;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;
}
一个do-while
控制块的工作原理如下:
- 执行
do
块
- 检查条件。如果成立,return 到 (1)
注意这个流程的顺序。与标准 while
不同,do-while
将始终在检查条件之前执行一次迭代。因此,对于空列表,您将始终尝试访问 table 的 0 索引元素,该元素不存在,因此会出现错误。您可以使用 while
循环来避免这种情况:
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
while (d < numbers.size()) {
if (numbers.get(d) > number){
return true;
}
d++;
}
return false;
}
你应该检查集合是否为空
像这样
if(numbers == null || numbers.isEmpty()) {
return false;
}
int d = 0;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;
}
(仅JAVA) P.s 这是我试过的一个函数,为了检查第一个参数,如果它包含一个大于第二个参数的数字,那么它将 return 为真,否则为 flase。 请注意,它正在使用 do while 循环。我只是不知道这段代码的哪一部分做错了,因为系统一直告诉我“java.lang.IndexOutOfBoundsException:索引 0 超出长度 0 的范围”。 谢谢你,任何提示都会非常有用。
您的整数列表是空的。您无法访问空列表的索引:
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
if (numbers.isEmpty()) return false;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;
}
一个do-while
控制块的工作原理如下:
- 执行
do
块 - 检查条件。如果成立,return 到 (1)
注意这个流程的顺序。与标准 while
不同,do-while
将始终在检查条件之前执行一次迭代。因此,对于空列表,您将始终尝试访问 table 的 0 索引元素,该元素不存在,因此会出现错误。您可以使用 while
循环来避免这种情况:
public static boolean hasGreaterDoWhile(List<Integer> numbers, int number) {
int d = 0;
while (d < numbers.size()) {
if (numbers.get(d) > number){
return true;
}
d++;
}
return false;
}
你应该检查集合是否为空
像这样
if(numbers == null || numbers.isEmpty()) {
return false;
}
int d = 0;
do {
if (numbers.get(d) > number){
return true;
}
d++;
}
while (d < numbers.size());
return false;