【发布时间】:2021-04-10 19:10:58
【问题描述】:
如果我不“删除”数组中间的元素之一,我可以放置和“删除”数组中的元素以及打印它们,因为我的代码只会让它显示到 0 显示向上,如果 0 是数组中的一个元素,则打印停止。 我试过这样做:
public static void showUsers() {
for (int i = 0; i <= 100; i++) {
if (users[i] == 0 && i == 0) {
System.out.println("There's no users");
//goes back to the main menu
return;
} else if (users[i] == 0) {
//goes back to the main menu
return;
}
System.out.println("List of Users: " + users[i]);
}
//goes back to the menu
return;
}
我也尝试过使用 do-while 循环:
public static void showUsers() {
int i = 0;
if (users[i] == 0 && i == 0) {
System.out.println("There's no users");
//goes back to the main menu
return;
}
do {
if (users[i] == 0) {
i++;
return;
}
System.out.println("List of Users:" + users[i]);
i++;
} while (users[i] == 0 || i <= 100);
//goes back to the main menu
return;
}
因此,如果我创建 3 个用户 (1,2,3,0,0,0,....),它将打印数字 1,2 和 3,但如果我“删除”数字 2,那么数组变为 (1,0,3,0,0,0,....) 它只会打印数字 1。这发生在我尝试过的两种情况。
我想要的是,在“删除”数字 2 之后,打印数字 1 和 3。
我应该改变我的打印方式还是我“消除”的方式以及如何?
【问题讨论】:
-
您不能从数组中“删除”元素,数组永远不会稀疏,并且它们从初始化时就具有固定的长度。使用
List。 -
当我说“删除”时,它会将数字设为 0。在这种情况下,该人将输入 2 作为输入,而 2 将变为 0。
-
你能否发送一个关于列表的链接顺便说一句,我对此有点陌生,我还没有看过列表