首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个简单的程序不能工作

为什么这个简单的程序不能工作
EN

Stack Overflow用户
提问于 2016-03-30 12:19:10
回答 3查看 91关注 0票数 0

所以我正在为即将到来的考试做一些随机的练习,我不知道这是因为我已经复习了几个小时,我的大脑没有工作,或者这段代码中有什么地方出了问题。

我正在尝试编写一个非常简单的java程序,它要求用户输入他们希望输入的数字的数量(totalNum),创建一个这么长的数组,然后要求用户输入每个单独的值。在要求用户提供数组中的每个值之后,它将打印数组。

下面是我的代码:

代码语言:javascript
运行
复制
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并停止。我已经做了几十个这样的程序,我的生活中我找不出哪里错了。

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

EN

回答 3

Stack Overflow用户

发布于 2016-03-30 12:21:45

您的循环测试是反向的。这

代码语言:javascript
运行
复制
for (int i = 0; i>totalNum; i++) {

应该是

代码语言:javascript
运行
复制
for (int i = 0; i < totalNum; i++) {

按照原样,测试的结果是false,并且没有进入循环。而且,不要在循环体中增加i (这就是i++for中做的事情)。最后,

代码语言:javascript
运行
复制
System.out.println(numbers);

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

代码语言:javascript
运行
复制
System.out.println(Arrays.toString(numbers));
票数 2
EN

Stack Overflow用户

发布于 2016-03-30 12:21:32

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

for循环有三个部分:

  1. 在开始循环之前要执行的操作

之后要执行的操作

您的条件是i>totalNum,对于i=0和totalNum=1为false。循环不会执行一次。

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

意外输出是由数组的默认toString()-method引起的。使用Arrays.toString()获得可读的输出。

票数 1
EN

Stack Overflow用户

发布于 2016-03-30 14:42:41

你的循环条件应该是

代码语言:javascript
运行
复制
for (int i = 0; i<totalNum; i++) {

在循环中不要增加变量i

使用下面的代码来获得您想要的结果。

代码语言:javascript
运行
复制
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));


}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36299625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档