gpt4 book ai didi

java - For 循环中的多个扫描仪输入

转载 作者:行者123 更新时间:2023-12-02 06:41:55 25 4
gpt4 key购买 nike

我刚刚开始学习如何使用 Java 编程,并且有一个关于扫描仪输入的问题。我正在构建一个小程序,它只是要求用户输入来创建一个数字数组。我想知道是否有一种方法可以检查包含 for 循环的数字输入,而不是在 for 循环中对每个案例进行 while 检查。

此外,对我的代码的任何其他评论或建议可以帮助我改进和理解我正在做的事情,我们将不胜感激!

谢谢!

编辑:我从运行程序的“主”类中调用此类。

import java.util.Scanner; //Import the use of the Java Scanner

public class ArrayBuild { // Open Application

private static Scanner input;

public Double[] anArray;

public static int arrayCount = 0;

public ArrayBuild() { // Constructor for ArrayBuild object

input = new Scanner(System.in);

arrayCount++;

System.out.println("This will be Array: " + arrayCount);

// Array Size Declaration
System.out.println("Enter Array Size: ");
while (!input.hasNextInt()) {
System.out.println("Please enter an integer for Array size!");
input.next();
}
int n = input.nextInt();
anArray = new Double[n]; // Create 'anArray' of size n
//

for (int i = 0; i < n; i++) { // Begin For Loop

if (i == 0) {
System.out.println("Enter First Number: ");
while (!input.hasNextDouble()) {
System.out.println("Please enter a number for array data!");
input.next();
}
Double D = input.nextDouble();
anArray[i] = D;
}

else if (i > 0 && i < (n - 1)) {
System.out.println("Enter Next Number: \n");
while (!input.hasNextDouble()) {
System.out.println("Please enter a number for array data!");
input.next();
}
Double D = input.nextDouble();
anArray[i] = D;
}

else if (i == (n - 1)) {
System.out.println("Enter Final Number: ");
while (!input.hasNextDouble()) {
System.out.println("Please enter a number for array data!");
input.next();
}
Double D = input.nextDouble();
anArray[i] = D;
}
} // End For Loop
}
} // Close Class

最佳答案

为了简化和编写干净的代码,您可以做的一件事就是始终分离重复的代码。就您而言,在 for 循环内,您仅更改 if 条件内的 print 语句。像这样把其他代码拿出来--

for (int i = 0; i < n; i++) { // Begin For Loop

if (i == 0)
System.out.println("Enter First Number: ");

else if (i > 0 && i < (n - 1))
System.out.println("Enter Next Number: \n");

else if (i == (n - 1))
System.out.println("Enter Final Number: ");

while (!input.hasNextDouble()) {
System.out.println("Please enter a number for array data!");
input.next();
}
Double D = input.nextDouble();
anArray[i] = D;

} // End For Loop

关于java - For 循环中的多个扫描仪输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069091/

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