这显然是家庭作业,但我遇到的部分问题就是那部分
“首先询问用户他们希望您读入多少双值。然后允许他们一次输入一个。如果给出错误的值,则应该抛出异常。您将存储读取的值成阵列。“
我遇到的问题是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
如果有人能告诉我如何检查输入的数字是不是有效的输入(如果这不是一个数组,它是否有任何不同?)并且我是否正确地为该程序输入双打?
答案 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循环中有逗号(,)。编码时需要更多地关注语法,需要学习如何在代码中查找错误。这些错误太愚蠢,无法在本网站上提问