sách gpt4 ai đã đi

java - 内部 while 循环永远不会完成

In lại 作者:行者123 更新时间:2023-12-01 07:22:39 30 4
mua khóa gpt4 Nike

如何防止内部 while 循环无限运行?问题是,如果没有外部 while 循环,内部循环将毫无问题地运行。我知道它必须对外循环执行某些操作,但我无法弄清楚是什么导致了问题。

import java.util.LinkedList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Tester
{
static LinkedList list1 = new LinkedList();
static LinkedList list2 = new LinkedList();

private static void stringMethod()
{
Set stringSet = new HashSet();
Random random = new Random();
String flashCard ="";

int rand;

while (!list2.isEmpty()) {
if (list2.size() != 1) {
flashCard = list2.remove(random.nextInt(list2.size() - 1));
} khác {
flashCard = list2.remove(0);
}

stringSet.add(flashCard);

while (stringSet.size() != 4) {
rand = random.nextInt(list1.size());
stringSet.add(list1.get(rand));
}
}
}

public static void main(String[] args)
{
for (int i = 0 ; i < 5; i++) {
list1.add("String " + i);
}

list2.addAll(list1);
stringMethod();
}
}

1 Câu trả lời

嗯,一旦 Set 的大小达到 5,内部循环就永远不会终止。list1 有 5 个元素,因此最终所有元素都会添加到 stringSet 中。很难看出你想在这里做什么,所以我无法建议如何修复它。

改变

while (stringSet.size() != 4)

ĐẾN

while (stringSet.size() < 4)

将防止无限循环,但我不确定这是否是所需的逻辑。

关于java - 内部 while 循环永远不会完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31595581/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com