如何通过for循环根据用户输入的起始值自动填充Java数组?
解决方法
你的代码问题在于在for循环内重复调用nextInt(),导致程序要求你输入10次数字。正确的做法是只获取一次用户输入,然后通过for循环计算数组每个位置的填充值。
修正后的代码
import java.util.Scanner; import java.util.Arrays; public class Arrayspopulate { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] array = new int[10]; System.out.println("Please give the first number"); // 仅获取一次用户输入的起始数字 int startNum = scanner.nextInt(); // 用for循环填充数组 for (int i = 0; i < array.length; i++) { // 计算当前位置的数值:从startNum开始递增,超过10则保持为10 int currentValue = startNum + i; array[i] = currentValue > 10 ? 10 : currentValue; } // 打印数组验证结果 System.out.println(Arrays.toString(array)); } }
代码说明
- 先通过
scanner.nextInt()获取一次用户输入的起始数字,避免重复输入。 - 在for循环中,每个数组元素的值为
startNum + i(i是当前索引,从0到9),如果计算结果超过10,就用10填充(保证数组包含从输入数字到10的所有值,同时填满长度为10的数组)。 - 用
Arrays.toString()可以直观打印整个数组的内容,方便验证结果。
比如输入4,程序会输出:[4, 5, 6, 7, 8, 9, 10, 10, 10, 10],完全符合你的需求。
内容的提问来源于stack exchange,提问作者Reffert
相关产品推荐
相关产品推荐

