C# 通过做项目学习
我已经输入了一些代码来尝试和实践我在编程课程中学到的东西。我的逻辑有些问题,因为我没有得到我应该得到的答案 我已经搜索和谷歌,并重新观看了培训视频,但似乎没有任何帮助C# 通过做项目学习,c#,C#,我已经输入了一些代码来尝试和实践我在编程课程中学到的东西。我的逻辑有些问题,因为我没有得到我应该得到的答案 我已经搜索和谷歌,并重新观看了培训视频,但似乎没有任何帮助 namespace TenPinBowling { class Program { static void Main(string[] args) { while (true) { Console.Wr
namespace TenPinBowling
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("Would you like to bowl, Y or N: ");
var answer = Console.ReadLine();
if (answer == "n")
{
Console.WriteLine("Thanks for playing, press any to exit :)");
Console.ReadKey();
break;
}
Score();
}
}
static void Score()
{
{
Random pins = new Random();
var pinsKnockedDown = pins.Next(0, 10);
//var totalScore = 0;
Console.WriteLine("You bowled a: " + pinsKnockedDown);
//var result = totalScore + pinsKnockedDown;
Console.WriteLine("You're total score is: " + Tally(pinsKnockedDown));
}
}
static int Tally(int score)
{
{
int result = 0;
result = result + score;
return result;
}
}
}
}
我希望我的第二种方法能保持我的总得分,但每次都会重置为个人得分。
static int Tally(int score)
{
{
int result = 0;
result = result + score;
return result;
}
}
每次调用该方法时都会创建一个新的局部变量结果,因此过去的分数记录将丢失。将结果设置为类的字段将允许它在游戏期间保持不变。最小的代码更改可能是:
private static int result = 0;
static int Tally(int score)
{
result = result + score;
return result;
}
我想如果你的总分不需要重置的话,你总是需要记录你的总分。现在你总是把当前的分数加在一起。如果将int结果置于tally之外,它应该相应地进行跟踪。那么您应该得到什么样的响应?您不会将总数保存在任何位置,并且总是将分数相加为零。即使tally函数是静态的,它的局部变量也会在每次调用时初始化。您的结果变量需要在其他地方声明;结果=结果+分数;因为结果是零,result=0+scoredeclare结果在Tally之外我知道还有很多其他的建议可以提出,但这至少应该解决问题!是的,比如为什么嵌套{{}}?或者你可以写结果+=分数;而不是结果=结果+分数;或者,您每次调用Score时都会创建一个新的随机值,最好使用相同的值。仍在解决OP面临的紧迫问题: