gpt4 book ai didi

java - 使用增强型 For 循环为数组分配新值

转载 作者:行者123 更新时间:2023-12-02 11:34:04 26 4
gpt4 key购买 nike

我正在尝试找到一种方法,通过使用增强的 For 循环将扫描仪输入中的值分配给数组。但我看不出有什么办法可以做到这一点。

在下面的代码中,我声明了一个 getInput() 方法,该方法循环遍历数组并从扫描仪输入分配数字。但在增强的 For 循环的情况下,我不能真正使用这样的东西 -

For(int i: baseData){
//basedata[i]=scanner.nextInt()}

因为baseData数组在迭代时不会返回任何值,所以我想如何迭代scanner.nextInt()并在数组中赋值,但scanner.nextInt()不是数组。那么有什么简单的方法可以解决这个问题呢?

package com.ksk;

import java.util.Scanner;

public class Main {

private static Scanner scanner = new Scanner(System.in);
private static int[] baseData = new int[4];

public static void main(String[] args) {

System.out.println("Enter 4 numbers here");
getInput();
printInput();
}

static void getInput() {
for (int i = 0; i < baseData.length; i++) {
baseData[i] = scanner.nextInt();
}
}

static void printInput() {
for (int i : baseData) {
System.out.println(i);
}
}

}

最佳答案

for-each 循环隐藏迭代器,因此您将无法用一个更新数组(至少在不添加新计数器/迭代器的情况下无法)。相反,假设您使用的是 Java 8+,您可以使用 Scanner 编写一个 IntStream 生成器。比如,

private static int[] baseData = IntStream.generate(() -> scanner.nextInt())
.limit(4).toArray();

但是,这实际上只是一个示例,在现实生活中,我更喜欢对意外输入更宽容的代码。

关于java - 使用增强型 For 循环为数组分配新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com