簡體   English   中英

Java系列平均數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM