所以,我提出要达到12个等级A while
循环。计数器从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++;
}
}
就像@Jeremy说,请尝试以下操作:
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());
gradeFunction(finalGrade, ref totalSumOfGrades, ref currentGrade);
}
public static void gradeFunction(double finalGrade, ref double totalSumOfGrades, ref int currentGrade)
{
if (finalGrade >= 4.00)
{
totalSumOfGrades += finalGrade;
currentGrade++;
}
}
我已经加入裁判关键字currentGrade
和totalSumOfGrades
在电话和声明都让变量被正确地更新,我相信是最无冲击的方式来获取代码工作。
编码,
Console.ReadLine();
double totalSumOfGrades = 0;
for(var currentGrade = 0; currentGrade <= 12; currentGrade++)
{
var finalGrade = double.Parse(Console.ReadLine());
if (finalGrade >= 4.00)
{
totalSumOfGrades += finalGrade;
}
}
会更简单,更直接。