[英]How to pass values of variables that I got from one method, To another method
[英]How to pass variables from one method to another?
試圖編寫一個成績計算器程序,並在將返回變量從一種方法傳遞到另一種方法時遇到問題。 我是編碼新手,所以我敢肯定這不是很漂亮,但希望能得到一些幫助。 我有一個計算作業分數的方法,一個計算期中分數的方法,一個計算期末分數的方法。 我試圖在最后一種方法中調用返回變量來計算總成績。 錯誤是在調用 courseScore 方法時,顯示為:GradeCalc 類型中的方法 courseScore(int, int, int) 不適用於 arguments()。 任何幫助表示贊賞!
import java.util.*;
public class GradeCalc {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int overAll;
int midtermScore;
int finalsScore;
hwpoints();
midTerm();
courseScore();
}
public static int hwpoints() {
int x;
int hwTotal = 0;
int pointsPossible = 0;
Scanner input = new Scanner(System.in);
System.out.println("Enter number of assignments:");
x = input.nextInt();
for(int i = 1; i <= x; i++) {
System.out.println("Enter assignment score:");
int hwScore = input.nextInt();
hwTotal += hwScore;
System.out.println("Enter total possible points:");
int points = input.nextInt();
pointsPossible += points;
}
int overAll = (hwTotal / x);
System.out.println("You got " + hwTotal + " out of " + pointsPossible + ". Your overall Homework grade is a: " + overAll);
return overAll;
}
public static int midTerm() {
int midtermPoints;
int midtermPossible;
int midtermScore;
Scanner input = new Scanner(System.in);
System.out.println("Enter Midterm Score:");
midtermPoints = input.nextInt();
System.out.println("Enter total possible Midterm Points:");
midtermPossible = input.nextInt();
midtermScore = (midtermPoints / midtermPossible);
System.out.println("Your Midterm score is " + midtermScore);
return midtermScore;
}
public static int finalScore() {
int finalsPoints;
int finalsPossible;
int finalsScore;
Scanner input = new Scanner(System.in);
System.out.println("Enter Finals Score:");
finalsPoints = input.nextInt();
System.out.println("Enter total possible Finals Points:");
finalsPossible = input.nextInt();
finalsScore = (finalsPoints / finalsPossible);
System.out.println("Your Finals score is " + finalsScore);
return finalsScore;
}
public static void courseScore(int finalsScore, int midtermScore, int overAll) {
Scanner input = new Scanner(System.in);
System.out.println("What percent of your grade is the final?");
int testWeight = input.nextInt();
System.out.println("What percent of your grade is the midterm?");
int midtermWeight = input.nextInt();
System.out.println("What percent of your grade is the homework?");
int hwWeight = input.nextInt();
int testWeighted = (finalsScore * (testWeight / 100));
int midtermWeighted = (midtermScore * (midtermWeight / 100));
int hwWeighted = (overAll * (hwWeight / 100));
int courseScore = ((hwWeighted + midtermWeighted + testWeighted) * 100);
System.out.println("Your total course grade is " + courseScore);
}
}
方法hwpoints
、 midTerm
和finalScore
都返回一個你沒有保留的 int 值
你需要做一些事情,比如
int hwp = hwpoints ();
int mt = midterm ();
int fs = finalScoare ();
然后你可以將這些變量傳遞給courseScore
作為
courseScore (fs, mt, hwp);
筆記
在這段代碼中
int testWeighted = (finalsScore * (testWeight / 100));
您將進行 integer 部門。
請參閱Int 除法:為什么 1/3 == 0 的結果?
首先要了解 class 和 static 方法的概念。
類有字段和方法。
Static 實例(類、字段和方法)是單例
使用它,考慮創建另一個 class,它具有您的 GradeCalc class 的(大部分)內容,並從中刪除靜態並在 GradeCalc 中創建該 class 的實例。 這樣 class 中的每個方法都可以訪問您定義的字段。
這是一個基於您已經編寫的概念的示例。 注意:您的代碼有其他結構/實現問題,我永遠不會如圖所示實現它; 但是,我不想把它變成 Java 課程; 因此,我試圖向您展示一些可以在您所寫內容的范圍內起作用的東西。
public class GradeCalc {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Calculator calc = new Calculator (calc);
calc.hwpoints();
calc.midTerm();
calc.courseScore();
int overAll = calc.OverAll;
int midtermScore = calc.MidtermScore;;
int overAll = calc.OverAll;
}
public class Calculator {
public void OverAll;
public void MidtermScore;
public void FinalsScore;
public void hwpoints()
{
...
OverAll = overAll
}
//Do the same for the methods below
//public void midTerm();
//public void courseScore();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.