Java 正在使用数组方法打印最后一个数字,忽略其他数字

拉斐尔开斋节

我试图让我的代码打印我在输出中输入的数字,但使用数组方法。

package pkg11;

import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int x = 0;

    System.out.println("How many number do you want to put?");
    int b = in.nextInt();

    for (int z = 1; z <= b; z++) {
      System.out.println("Input your" + " " + z + " " + "number");
      x = in.nextInt();
    }

    System.out.println();
    int[] a = new int[x];;

    for (int i = 0; i < a.length; i++) {
      System.out.println(a[i]);
    }
  }
}

问题是当它打印时它只打印最后一个值,例如,我把我想放 3 个数字,第一个是 1,第二个是 2,第三个是 3,它打印第三个而不放第一个 2。

格兰斯

仔细查看您的以下代码片段并尝试找出错误:

for (int z = 1; z <= b ; z++) {
    System.out.println("Input your" +" " +z +" " +"number");
    x = in.nextInt();
}

// here you create the array
int [] a = new int [x];

如果您没有发现它:在从控制台读取所有值后,您创建要保存每个整数的数组。您无法将用户输入存储在数组中,因为当时还不知道。

那么,你究竟做了什么?

你用相同的变量x所有的时间x = in.nextInt();,覆盖每个输入。

我能做些什么来解决问题?

Scanner in = new Scanner(System.in);
int x = 0;

System.out.println("How many number do you want to put?");
int b = in.nextInt();

int[] a = new int[b];

for (int z = 0; z < b; z++) {
    System.out.println("Input your" + " " + (z + 1) + " " + "number");
    a[z] = in.nextInt();
}

for (int i = 0; i < a.length; i++) {
    System.out.println(a[i]);
}

首先,int[] a = new int[b];在读取值之前声明并将每个输入分配给数组a[z] = in.nextInt();另外,我稍微修改了你的循环索引,让事情变得更容易。

好的,我还能做什么?

除了用户输入非数字外,此代码更防弹!如果您正在寻找更多,您可以使用in.nextLine()Integer.valueOf()来防止用户输入字符串而不是数字。

Scanner in = new Scanner(System.in);

int amountOfNumers;
System.out.println("How many number do you want to put? Amount: ");

amountOfNumers = in.nextInt();
while (amountOfNumers < 1) {
    System.out.println("Please enter a number greater than one:");
    amountOfNumers = in.nextInt();
}

int[] numbers = new int[amountOfNumers];

for (int i = 0; i < amountOfNumers; i++) {
    System.out.println("Input your " + (i + 1) + " number: ");
    numbers[i] = in.nextInt();
}

System.out.println("Your numbers are:");
Arrays.stream(numbers).forEach(System.out::println);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java如何删除长号的最后一个数字?

Java将数组分为2个其他数组,一个数组的所有数字都大于一个值,而另一个数组的所有下面

为什么我的代码只比较数组的第一个和最后一个数字 - Java

仅打印Java中数组中另一个数字的两倍的数字

使用数组方法的集合打印两个数字中最大的一个的和?

Java的插入数字到为了一个数组

如何在Java上将整数的第二个数字与最后一个数字相加?

使用Java中的嵌套for循环从第n个数字到最后一个输入的时间表

我正在用 java 制作一个程序,它打印从 1 到 x 的数字(x 是用户输入值)。这是使用 for 循环和方法语句

如何获取CountLines函数(在Java中),以输出文件中的最后一个数字?

Java-使用递归求和一个数字,该数字与该数字的差和3的倍数之差

Java:给定一个数字,获取数组中出现的最高顺序

打印出一个数组Java

Java随机生成5个数字并打印最大的数字

如何在Java中删除字符串中最后一个数字之后的所有内容?

使用Java中的for循环打印数字的每个数字

二维数组值将每个数组中的一个与其他 java 脚本组合

忽略数组中的第一个和最后一个数字

一个获取整数、分隔各个数字并给出数字总和的 Java 程序

如何用 selenium 和 java 比较两个数字?(一个数字来自 CSV 文件,另一个数字来自网站)

使新的int数组的大小是数组的两倍,复制第一个数字,然后不使用方法将其他数字倒转

在java中打印出3个数字

如何在Java中第一个和最后一个数字之间的所有数字出现之前,立即在字符串中添加字符?

根据索引或使用lambda进行的最后一个数组值修改在Java Stream上进行过滤

使用增量和减量按钮在Java Swing中创建一个数字文本框

我如何在不使用String的情况下从Java中截断一个数字

正则表达式Java正则表达式以提取除最后一个数字以外的字符串

Java数组方法

为什么此数组仅打印最后一个数字?