【发布时间】:2019-06-28 06:54:42
【问题描述】:
所以我做了一个while 循环,要达到 12 个等级。计数器从 0 开始。在Main() 方法中,我调用函数gradeFunction(),但在它执行后它不会对计数器进行任何更改。
Program p = new Program();
string name = Console.ReadLine();
int gradesPassed = 12;
int currentGrade = 0;
double totalSumOfGrades = 0;
while(currentGrade <= gradesPassed)
{
double finalGrade = double.Parse(Console.ReadLine());
p.gradeFunction(finalGrade, totalSumOfGrades, currentGrade);
}
被调用函数:
public void gradeFunction(double finalGrade, double totalSumOfGrades, int currentGrade)
{
if(finalGrade >= 4.00)
{
totalSumOfGrades += finalGrade;
currentGrade++;
}
}
【问题讨论】:
-
按值传递。
gradeFunction中的currentGrade与调用者中的不相同。这是价值的副本。改变它不会改变原来的。使用out或返回值。 -
按引用(按引用)或按值查找传递的参数。 docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…
-
@Fildor 说了什么。作为学习参考:mathwarehouse.com/programming/…
-
你真的需要这个任务的方法吗?
-
我只是想弄清楚这个作业是如何工作的
标签: c# function while-loop