【发布时间】:2013-12-04 11:58:56
【问题描述】:
我想遍历一个数组并打印任何不为空的值,这是我尝试使用的代码:
for (int i = 0; i < 10; i++) {
if (studentNamesArray[i] != null) {
studentFound = true;
System.out.println("Which student would you like to delete?");
System.out.println(i + ": " + studentNamesArray[i]);
int studentChoice = input.nextInt();
}
}
数组:
static String[] studentNamesArray = new String[10];
问题是它只打印出index[0]。我该如何解决这个问题?
编辑:
这是我的完整代码:
static void deleteStudent() {
boolean studentFound = false;
for (int i = 0; i < 10; i++) {
if (studentNamesArray[i] != null) {
studentFound = true;
System.out.println("Which student would you like to delete?");
System.out.println(i + ": " + studentNamesArray[i]);
}
int studentChoice = input.nextInt();
for (i = 0; i < 10; i++) {
for (i = studentChoice + 1; i < studentNamesArray.length; i++) {
studentNamesArray[i - 1] = studentNamesArray[i];
}
nameArrayCount = nameArrayCount - 1;
studentNamesArray[studentNamesArray.length - 1] = null;
for (i = studentChoice + 1; i < 9; i++) {
for (int y = 0; y < 3; y++) {
studentMarksArray[i - 1][y] = studentMarksArray[i][y];
}
}
markArrayCount = markArrayCount - 1;
for (int y = 0; y < 3; y++) {
studentMarksArray[9][y] = 0;
}
}
}
if (!studentFound) {
System.out.println("There are no students stored");
}
}
【问题讨论】:
-
从这段代码中,输出永远不会是
index[0] -
你会问
Which student would you like to delete?这个问题10次吗?为什么? -
@AycanYaşıt 他只问 studentNames 不为空的时间。
-
您确定您的程序已退出该循环吗?还是在等待输入?
-
向我们展示初始化 studentNamesArray[] 元素的代码。无论如何,为什么需要局部变量 studentChoice?您不能使用它,因为它的作用域以 if 语句结尾...