用户输入数组中的for循环问题

时间:2015-04-25 13:30:47

标签: java arrays

这显然是家庭作业,但我遇到的部分问题就是那部分

“首先询问用户他们希望您读入多少双值。然后允许他们一次输入一个。如果给出错误的值,则应该抛出异常。您将存储读取的值成阵列。“

我遇到的问题是for循环要求用户输入他们想要的数字,它会抛出5个我无法弄清楚的错误,或者是否有更简单的方法来获取用户输入?这是

的代码
//import statements
import java.util.*;     //for scanner class


// class beginning
class  StandardDev {
public static void main(String[] args ) {
    //Declare variables area
    Scanner input = new Scanner (System.in);


    //Collect inputs from user or read in data here
    System.out.println("Welcome to my Standard Deviation and average program!");
    System.out.println("how many numbers do you want to enter? ");
    int number =input.nextInt();
    double [] value = new double [number];


    //Echo input values back to user here
    System.out.println("you want to enter in "+number+" numbers, lets start");


    //main code and calculations to do

    int i;
    for ( i = 0;, i <number;, i++){
        value[i] = input.nextDouble();
        System.prinln("here are the numbers you have entered "+value+"!");
    }
    //Output results here

如果有人能告诉我如何检查输入的数字是不是有效的输入(如果这不是一个数组,它是否有任何不同?)并且我是否正确地为该程序输入双打?

3 个答案:

答案 0 :(得分:2)

您的for循环语法稍微偏离,您应该在读入所有用户的值后打印数组。

// main code and calculations to do
int i;
for (i = 0; i < number; i++) {
    value[i] = input.nextDouble();
}

此外,使用for循环时,最好限制迭代变量i的范围并使用println,您需要System.out(不仅仅是{{1}并且你需要一个System(Java数组不会覆盖String)所以要输出用户输入的数字(在循环之后),如

toString()

答案 1 :(得分:0)

你必须修复你的for语句删除逗号并使用System.out.println而不是System.prinln

这样:

for ( i = 0; i <number; i++){
    value[i] = input.nextDouble();
}
System.out.println("Here are the numbers you have entered "
    + Arrays.toString(value) + " !");

结果将是:

  

欢迎来到我的标准偏差和平均计划!   你要输入多少个号码?

     

3

     

你要输入3个数字,让我们开始

     

1 2 3

     

以下是您输入的数字[1.0,2.0,3.0]!

关于验证:

您可以通过这种方式修改for语句,以便捕获错误的输入并允许用户重新输入值:

int i = 0;
while(i < number) {
    try {
        System.out.println("Enter the value " + (i+1) + "/" + number + ":");
        value[i] = input.nextInt();
        i++;
    } catch(InputMismatchException e) {
        System.out.println("This is not a valid input! Please enter it again!");
        input.next();   // This consume the invalid token
    }
}

这是最终结果:

  

欢迎来到我的标准偏差和平均计划!

     

您想输入多少个号码?

     

3

     

你要输入3个数字,让我们开始

     

输入值1/3:   1

     

输入值2/3:   2

     

输入值3/3:   一个

     

这不是有效的输入!请再次输入!

     

输入值3/3:   3

     

以下是您输入的数字[1.0,2.0,3.0]!

答案 2 :(得分:0)

此代码有效,

   import java.util.*;     //for scanner class


// class beginning
class  StandardDev {
public static void main(String[] args ) {
        //Declare variables area
        Scanner input = new Scanner (System.in);


        //Collect inputs from user or read in data here
        System.out.println("Welcome to my Standard Deviation and average program!");
        System.out.println("how many numbers do you want to enter? ");
        int number =input.nextInt();
        double [] value = new double [number];


        //Echo input values back to user here
        System.out.println("you want to enter in "+number+" numbers, lets start");


        //main code and calculations to do

        int i;
        for ( i = 0; i <number; i++){
            value[i] = input.nextDouble();
            System.out.println("here are the numbers you have entered "+value[i]+"!");
        }
    }
}

你在代码中犯了一些愚蠢的错误。

System.prinln("here are the numbers you have entered "+value+"!");

这一定是

System.out.println("here are the numbers you have entered "+value[i]+"!");

你在for循环中有逗号(,)。编码时需要更多地关注语法,需要学习如何在代码中查找错误。这些错误太愚蠢,无法在本网站上提问