这个java程序应该打印下面数组中的数字:
public class Masterpiece {
public static void main(String[] args) {
int laser[] = new int[10];
Scanner x = new Scanner(System.in);
System.out.println("Enter 10 numbers.");
for (int counter = 0; counter < laser.length; counter++) {
System.out.print("Enter a number: ");
laser[counter] = x.nextInt();
}
Arrays.sort(laser);
for (int counter = 9; counter <= 0; counter--) {
System.out.println(laser[counter]); /** line 21 */
}
System.out.println("Highest: " + laser[9]);
System.out.println("Lowest: " + laser[0]);
}
}
但是,在第21行,它不会打印数组元素。为什么呢?
感谢阅读!
答案 0 :(得分:1)
for (int counter = 9; counter >= 0; counter--) {
System.out.println(laser[counter]);
}
但通常情况下,如果你坚持标准形式会更好:
for (int counter = 0; counter < laser.length; counter++) {
System.out.println(laser[counter]);
}
或者,最好使用增强型结构:
for (int val : laser) {
System.out.println(val);
}
答案 1 :(得分:1)
您的for
循环正在向后计数,但循环的条件部分(counter <= 0
)正在检查counter
是否小于或等于0.自启动{{在9处,这个条件立即失败,因为它不小于或等于0并且循环中没有代码被执行。你想要大于或等于0:
counter
我还建议您在这里使用数组的长度,以便在调整大小时,不必修改循环代码:
for (int counter = 9; counter >= 0; counter--) {
答案 2 :(得分:0)
在for循环中,将计数器初始化为9并告诉循环在9小于或等于0时执行,然后减去1。问题是当程序第一次进入for循环9时不小于0所以该值为false并且它会跳过循环。
更好的循环是:
For(int counter = 0; counter < 10; counter++)
{
System.out.println(laser[counter]);
}