当前位置: 首页 > 知识库问答 >
问题:

在简单循环中打印数组时输出与预期不同

安轶
2023-03-14
import java.util.*;
public class RandomAddArray {
    public static void main (String[] args) {
        AddArray ad = new AddArray();
        int[] Ar = new int[4];
        ad.AddArray(Ar);
    }
}

class AddArray {
    public void AddArray(int a[]) {
        for(int i = 0; i < a.length; i++) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            a[i] = n + 2;
            System.out.print(a[i]);
        }
    }
}

在我的代码中,我从控制台读取了四个整数,并将2添加到每个整数中。如果我输入数字1四次,系统。出来打印应输出3次四次。

但是,我得到了以下输出:

共有2个答案

壤驷骁
2023-03-14

如果你调用系统。出来打印(价值) 检索输入后,值将直接在输入后打印(最后一个字符是换行符,因此在下一行)。只需在第一个循环之后将其放入一个单独的循环中,如下所示:

public void AddArray(int a[]) {

    Scanner sc = new Scanner(System.in);

    for(int i = 0; i < a.length; i++) {
        int n = sc.nextInt();
        a[i] = n + 2;
    }

    for (int value : a) {
        System.out.print(value);
    }

}

然后,在您输入后,它将在单独一行中打印3333。如果要在单独的行中打印每个数字,请使用System。出来println(值) 取而代之。

秦承允
2023-03-14

这是我目前的解决方案。希望这篇评论能对你有所帮助,否则请随时问我一些进一步的问题。:)

你好,京

import java.util.*;

public class Main {

    public static void main (String[] args) {
        // create Array to fill and pass it into our fill function
        int[] Ar = new int[4];
        AddArray.addToArray(Ar);
        System.out.println(Arrays.toString(Ar));
    }

    private static class AddArray {

        // static class, there is no need to instantiate it.
        public static void addToArray(int a[]) {

            // create on scanner out of the loop
            Scanner sc = new Scanner(System.in);

            // for each array index let's scan for some new int's
            for(int i = 0; i < a.length; i++) {
                System.out.printf("Type in your %s of %s integer:%n", i+1, a.length);
                int n = sc.nextInt();
                a[i] = n + 2;
            }

            // close scanner afterwards
            sc.close();
        }

    }

}

产出将是:

Type in your 1 of 4 integer:
4
Type in your 2 of 4 integer:
124
Type in your 3 of 4 integer:
12
Type in your 4 of 4 integer:
2
[6, 126, 14, 4]

Process finished with exit code 0
 类似资料:
  • 需要一些专家的建议。首先,这里是我的代码: 我的问题是:当我输入一个用户号码如“3”时,提示我的代码只打印一个__当我希望它打印指定的号码。我无论如何也想不出来。 我是英语专业的,所以这不是我的强项:(形状应该是菱形的。)

  • 大家好,我被一个问题困住了,想不出解决办法。我使用的是while循环,do while循环和for。我知道我的前两个while循环是正确的,我试图完成的是让我的do while循环和for语句打印出与我的第二个while循环相同的东西。 输入要打印的消息? 你好 输入要打印邮件的次数。输入1-20之间的值: 5 使用do-while循环输出... 第6.0行-你好 do-while循环中的时间..

  • 在这个程序中,我必须打印1到100之间的素数。要遵循的方法是——要找出素数,用存储在数组中的前一个素数除以一个数。如果给定的数字在除以任何前一个素数时留下0作为余数,那么它就不是素数。如果不是,它就是一个素数,并将其添加到数组中。在程序中——我初始化了一个由100个数字组成的数组,并将1到100个数字存储在数组a中(步骤1)。是我将存储素数的数组。我在(步骤2)中存储了的前两个值。在(步骤3)中,

  • 我创建了一个while循环来为我的程序创建菜单,它将一直循环,直到用户在控制台中键入“退出”。我的问题是,每当我在控制台中输入'Transfer'时,if语句都能正常运行,但当它返回到循环的开始时,

  • 问题内容: 此函数创建字典,但不返回任何内容。但是,由于添加了,因此在运行函数时将显示函数的输出。进东西和进东西有什么区别? 问题答案: 打印只是将结构打印到输出设备(通常是控制台)上。而已。要从你的函数返回它,你可以执行以下操作: 为什么要回来?好吧,如果你不这样做,该词典将死亡(收集垃圾),并且在此函数调用结束后将无法再访问该词典。如果返回该值,则可以使用它进行其他操作。如: 看看发生了什么事

  • 我正在尝试使用joblib来并行化在函数上运行的循环。我希望显示函数的中间打印命令,而不仅仅是函数的返回值。 我得到以下输出: 我希望获得以下输出(或类似输出): 编辑:我刚刚注意到它确实会在启动Jupyter笔记本的终端窗口中打印我所需的输出。有没有关于如何在我的笔记本上打印的想法。提前谢谢。