[英]Java average of series of numbers
public int CalculateResult(){
int requiredGrade = 0;
for (int x = 0; x < 4; x++){
int grade = input.nextInt();
int totalMarks = totalMarks + grade;
}
return totalMarks / 5;
if (totalMarks < requiredGrade){
System.out.println("You didn't pass.");
}
else{
System.out.println("You passed.");
}
}
我正在嘗試編寫一個程序,該程序允許用戶輸入一系列學生的成績,但是我在行return totalMarks / 5
(獲取5個結果的平均值)的過程中不斷出錯。
我試過將return語句移到for循環內,但是編譯器仍然無法識別totalMarks
是什么。
您需要在for循環之外聲明totalMarks
,以便其范圍不限totalMarks
。
同樣, return
必須是函數的最后一條指令:
public double CalculateResult() {
int requiredGrade = 10; // some value
int totalMarks = 0;
for (int x = 0; x < 4; x++){
int grade = input.nextInt();
int totalMarks += grade;
}
double averageGrade = totalMarks / 5;
if (averageGrade < requiredGrade){
System.out.println("You didn't pass.");
}
else{
System.out.println("You passed.");
}
return averageGrade;
}
這是因為totalMarks的范圍在定義它的for循環內。 要在部門中使用它,您需要在外部定義它:
public int CalculateResult(){
int totalMarks = 0;
int requiredGrade = 0;
for (int x = 0; x < 4; x++){
int grade = input.nextInt();
totalMarks = totalMarks + grade;
}
if (totalMarks < requiredGrade){
System.out.println("You didn't pass.");
}
else{
System.out.println("You passed.");
}
return totalMarks / 5;
}
編輯-您還應該按照@kurochenko編輯將返回內容移到末尾-否則您的輸出將無法訪問。
Java具有塊變量可見性。 您必須在使用該變量的相同或父塊(塊由{}
大括號定義)中定義變量。 因此,您的代碼應如下所示:
public int CalculateResult(){
int requiredGrade = 0;
int totalMarks = 0;
for (int x = 0; x < 4; x++){
int grade = input.nextInt();
totalMarks = totalMarks + grade;
}
if (totalMarks < requiredGrade){
System.out.println("You didn't pass.");
}
else{
System.out.println("You passed.");
}
return totalMarks / 5;
}
在return
語句之后也應該沒有任何代碼,因為此代碼不可訪問,並且會生成編譯錯誤。 嘗試使用某些IDE(例如Netbeans,Intellij IDEA,Eclipse),以便在鍵入代碼時向您顯示編譯錯誤。
如前所述,請注意變量和return語句的焦點。 另請注意,在整數上使用除法運算符會使結果下限,例如:
int i = 5;
int j = 10;
double d = i / j;
System.out.println(d);
這將打印0.0,因為i / j等於0.5,該值向下舍入為0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.