Java 如何使用方法计算1个grades数组参数并返回数组的总数?
我的作业要求我写一个Java程序。我有点不对劲 基本上,我必须创建一个Java方法,让用户输入x个等级数量(用户选择),将等级存储在数组中,然后将等级添加到数组中,以便在主方法中调用 这是我的密码:Java 如何使用方法计算1个grades数组参数并返回数组的总数?,java,arrays,class,methods,Java,Arrays,Class,Methods,我的作业要求我写一个Java程序。我有点不对劲 基本上,我必须创建一个Java方法,让用户输入x个等级数量(用户选择),将等级存储在数组中,然后将等级添加到数组中,以便在主方法中调用 这是我的密码: import java.util.Scanner; public class Sample { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in);
import java.util.Scanner;
public class Sample {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Hello Drews, how many total grades do you want to process?");
int numberOfGrades = keyboard.nextInt();
int [] storeGrades = new int[numberOfGrades];
}
public static int getTotalScore(int numberOfGrades[]) {
Scanner keyboard = new Scanner(System.in);
int getTotalScore;
int []storeGrades;
for (int i = 0; i < getTotalScore; i++) {
System.out.println("Please enter grade " + (i + 1) + ": ");
int userGradeNumbers = keyboard.nextInt();
storeGrades[i] = userGradeNumbers;
sum += userGradeNumbers;
}
}
}
import java.util.Scanner;
公共类样本{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“你好,德鲁斯,你想处理多少个总成绩?”);
int numberOfGrades=keyboard.nextInt();
int[]storeGrades=新int[numberOfGrades];
}
公共静态int getTotalScore(int numberOfGrades[]{
扫描仪键盘=新扫描仪(System.in);
int getTotalScore;
国际职系;;
for(int i=0;i
我在“sum”处得到一个错误,它没有被解析为变量?它不允许我在for循环中初始化sum,也不允许我在getTotalScore方法中初始化sum。为什么不呢?首先,得到分数。然后调用该方法以获取
和
。在循环之前声明和
,并将其初始化为0
。以后还。像
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Hello Drews, how many total grades do you want to process?");
int numberOfGrades = keyboard.nextInt();
int[] storeGrades = new int[numberOfGrades];
for (int i = 0; i < numberOfGrades; i++) {
System.out.println("Please enter grade " + (i + 1) + ": ");
storeGrades[i] = keyboard.nextInt();
}
System.out.println(getTotalScore(storeGrades));
}
public static int getTotalScore(int[] storeGrades) {
int sum = 0;
for (int i = 0; i < storeGrades.length; i++) {
sum += storeGrades[i];
}
return sum;
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“你好,德鲁斯,你想处理多少个总成绩?”);
int numberOfGrades=keyboard.nextInt();
int[]storeGrades=新int[numberOfGrades];
对于(int i=0;i
首先,获得分数。然后调用该方法以获取和
。在循环之前声明和
,并将其初始化为0
。以后还。像
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Hello Drews, how many total grades do you want to process?");
int numberOfGrades = keyboard.nextInt();
int[] storeGrades = new int[numberOfGrades];
for (int i = 0; i < numberOfGrades; i++) {
System.out.println("Please enter grade " + (i + 1) + ": ");
storeGrades[i] = keyboard.nextInt();
}
System.out.println(getTotalScore(storeGrades));
}
public static int getTotalScore(int[] storeGrades) {
int sum = 0;
for (int i = 0; i < storeGrades.length; i++) {
sum += storeGrades[i];
}
return sum;
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“你好,德鲁斯,你想处理多少个总成绩?”);
int numberOfGrades=keyboard.nextInt();
int[]storeGrades=新int[numberOfGrades];
对于(int i=0;i
您的代码的意图是正确的,但有些事情的顺序有点不正确,目前存在语法问题
我主张将代码分为两种方法(除非根据赋值明确禁止这样做)。一种方法是从用户处获取分数,另一种方法是求和分数。这样做的原因是,您最终尝试同时存储和求和成绩(这在技术上更有效),但这并没有教会您如何通过迭代数组来计算运行总数(这可能是本课程的重点)
我想说的另一件事(这可能超出了您现在所处的位置)是,当您使用扫描仪时,您需要验证用户是否键入了您认为他们键入的内容。您希望用户键入一个数字,然后他们键入“Avocado”,这是完全合理的。因为Java是强类型的,这将导致您的程序抛出异常并崩溃。我已经添加了一些基本的输入验证,作为一个例子来说明如何做到这一点;总的想法是:
1) 检查扫描仪是否有int
2) 如果没有int,请让用户重试
3) 否则,它有一个int,你可以继续。存储值
关于扫描仪的最后一件事记住关闭它们如果不这样做,在扫描仪继续运行时可能会导致内存泄漏
下面是我将如何修改您的代码以满足您的需要。如果有什么不合理的地方,给我一个评论,我会进一步解释。我把评论放在内联的地方,因为我觉得这样更容易消化
package executor;
import java.util.Scanner;
public class StudentGrades {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
// Initial prompt to the user
System.out.println("Hello Drews, how many total grades do you want to process?");
// This loop validates that the user has actually entered an integer, and prevents
// an InputMismatchException from being thrown and blowing up the program.
int numberOfGrades = 0;
while (!keyboard.hasNextInt()) {
System.out.println("Sorry, please enter a valid number!");
keyboard.next();
}
// If the program makes it through the while loop, we know that the Scanner has an int, and can assign it.
numberOfGrades = keyboard.nextInt();
// Creating the array using the method getGrades().
int[] storedGrades = getGrades(numberOfGrades, keyboard);
// Calculating the total score using the method getTotalScore().
int totalScore = getTotalScore(storedGrades);
System.out.println("Total Score is: " + totalScore);
keyboard.close();
}
/**
* Asks the user to provide a number of grades they wish to sum.
* @param numberOfGrades the total number of grades that will be requested from the user.
* @param keyboard the scanner that the user will use to provide the grades.
* @return the summed grades as an int.
*/
public static int[] getGrades(int numberOfGrades, Scanner keyboard) {
int[] grades = new int[numberOfGrades];
// Asking the user i number of times, to enter a grade to store.
for (int i = 0; i < numberOfGrades; i++) {
System.out.println("Please enter grade " + (i + 1) + ":");
// More input validation to ensure the user can't store "Cat."
while (!keyboard.hasNextInt()) {
System.out.println("Sorry, please enter a valid number!");
keyboard.next();
}
int userEnteredGrade = keyboard.nextInt();
// Storing the user's entry.
grades[i] = userEnteredGrade;
}
return grades;
}
/**
* Sums all of the grades stored within an integer array.
* @param storedGrades the grades to be summed.
* @return the total value of summed grades.
*/
public static int getTotalScore(int[] storedGrades) {
int totalScore = 0;
for (int i = 0; i < storedGrades.length; i++) {
totalScore += storedGrades[i];
}
return totalScore;
}
}
包执行器;
导入java.util.Scanner;
公营班级学生成绩{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
//对用户的初始提示
System.out.println(“你好,德鲁斯,你想处理多少个总成绩?”);
//此循环验证用户是否实际输入了整数,并防止
//一个InputMismatchException被抛出并炸毁程序。
int numberOfGrades=0;
而(!keyboard.hasNextInt()){
System.out.println(“对不起,请输入一个有效的数字!”);
键盘。下一步();
}
//如果程序通过while循环,我们知道扫描器有一个int,并且可以分配它。
numberOfGrades=键盘.nextInt();
//使用getGrades()方法创建数组。
int[]storedGrades=getGrades(numberOfGrades,键盘);
//使用getTotalScore()方法计算总分。
int totalScore=getTotalScore(存储分数);
System.out.println(“总分为:“+totalScore”);
键盘关闭();
}
/**
*问