为什么这个简单的程序不起作用

时间:2016-03-30 04:19:10

标签: java arrays

因此,我正在为即将到来的考试做一些随机练习,而且我不知道我是否已经进行了几个小时的复习,而且我的大脑并没有。 ; t功能,或此代码中的某些内容是错误的。

我试图制作一个非常简单的java程序,询问用户他们想要输入的数量(totalNum),创建一个很长的数组,然后向用户询问每个单独的值。在询问用户数组中的每个值后,它会打印数组。

这是我的代码:

import java.util.Scanner;
public class Practice1 {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.println("How many numbers would you like to store?");
    int totalNum = s.nextInt();

    int[] numbers= new int[totalNum];


    for (int i = 0; i>totalNum; i++) {
        System.out.println("Number" + i + " :");
        numbers[i] = s.nextInt();
        i++;
    }
    numbers.toString();
    System.out.println(numbers);


}
}

当我运行它时,它会询问用户我要存储的数字,然后打印[I @ 33909752并停止。我已经完成了很多像这样的程序,而且对于我的生活,我无法弄清楚我哪里出错了。

任何帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:2)

你的循环测试是倒退的。此

for (int i = 0; i>totalNum; i++) {

应该是

for (int i = 0; i < totalNum; i++) {

按原样,测试评估为false并且未输入循环。并且,不要在循环体中增加i(这是i++for所做的事情)。最后,

System.out.println(numbers);

不会正确打印数组,因为数组不会覆盖Object.toString()。您可以使用Arrays.toString之类的

System.out.println(Arrays.toString(numbers));

答案 1 :(得分:1)

i>totalNum是问题所在。 for循环甚至不会执行一次。

for循环有三个部分:

  1. 开始循环前要执行的操作
  2. 条件
  3. 每次循环后要执行的操作
  4. 您的条件为i>totalNum,对于i = 0和totalNum = 1,该条件为false。循环甚至不会执行一次。

    循环中已经提到i++,您不需要再将它包含在循环体中。

    意外输出是由默认的toString() - Array方法引起的。使用Arrays.toString()获取可读输出。

答案 2 :(得分:0)

你的循环条件应该是

for (int i = 0; i<totalNum; i++) {

并且在循环内不要增加变量i

使用以下内容获得所需结果。

public class Practice1 {
public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out.println("How many numbers would you like to store?");
    int totalNum = s.nextInt();

    int[] numbers= new int[totalNum];

    for (int i = 0; i<totalNum; i++) {
        System.out.println("Number" + i + " :");
        numbers[i] = s.nextInt();
        i++;    //remove this
    }
    numbers.toString();
    System.out.println(Arrays.toString(numbers));


}
}