【问题标题】:C# Fat Lost caculatingC# 减脂计算器
【发布时间】:2014-03-14 05:37:00
【问题描述】:

您好,我正在尝试将我的代码计数为 10、15、20、25....60,然后将每个计数乘以 3.9cal 并显示两者,但由于某种原因,我的代码不会倒计时,您能帮帮我吗?

请保持代码简单,因为我还在学习:)

double lost;
int counter = 5;
while (counter <= 60)   
{
  if (counter * 5 == 0)
  {
    lost = counter * 3.9;
    Console.WriteLine("Minutes spend: {0}    Fat Lost: {1}", counter, lost);
    counter++;
  }

  Console.ReadLine();
}

【问题讨论】:

  • 你的 WriteLine 永远不会执行,因为counter * 5 永远不会等于零。
  • 似乎是无限循环问题?
  • 看起来有什么帮助吗? O_O 如何在循环进入宇宙之前停止循环?
  • 我建议你使用 for 循环,可能会让你的生活更轻松。
  • 看起来你可能想要if (counter % 5 == 0),这样每5的倍数都为真。如果是这种情况,那么你也可以每次迭代将counter增加5,通过将counter++ 更改为counter += 5

标签: c# if-statement while-loop counter


【解决方案1】:

这可以是一个简单的 for 循环,如:

for(int i = 0; i <= 60; i+=5) 
        Console.WriteLine("Minutes spend: {0} - Fat Lost: {1}", i, i*3.9);

但是,如果您愿意,可以为此使用 LINQ/Enumerable 方法。对于这种性质的循环,我通常会发现它们更清晰:

var a = Enumerable.Range(1, 12).Select(i => new {Minutes = i * 5, Lost = i * 5 * 3.9});
foreach(var entry in a)
    Console.WriteLine ("Minutes spent: {0} - Fat Lost: {1}", entry.Minutes, entry.Lost);

【讨论】:

  • 除非你没有读过这个......“请保持代码简单,因为我还在学习:)”
  • @DavidN 有没有更简单的方法我还没有学习 var 或 foreach 但是你的代码对于像我这样的新手来说似乎是未来主义的:(
  • @TheBoringGuy 希望这会给你动力:)
【解决方案2】:

您的代码的问题是,您的 IF 语句永远不会是真的,因为您开始使用 counter = 5 开始循环

您需要将 counter++ 移到 if 语句之外来解决问题

double lost;
int counter = 5;
while (counter <= 60)
{
    if (counter % 5 == 0)
    {
        lost = counter * 3.9;
        Console.WriteLine("Minutes spend: {0}    Fat Lost: {1}", counter,     lost);
    }
    counter++;
}
Console.ReadLine();

【讨论】:

  • 为什么 readline 在每个答案的 while 循环中。因为 SO 这样做了。?
  • @malkassem 它似乎仍然不想倒计时 5,10,15...60 它只是停留在 5:/
  • 为什么要以 if 语句开头。我会完全删除它。
  • count++;需要 count +=5 才能为用户提供他正在寻找的内容 (5,10,15...)
  • @MillerKoijam 谢谢,是的,我不得不将阅读线移到答案之外谢谢你帮了我很多谢谢你们俩,哈哈
【解决方案3】:

试试这个(如果我理解正确的话):

double lost;
int counter = 5;
while (counter <= 60)   
{
  if (counter % 5 == 0)
  {
    lost = counter * 3.9;
    Console.WriteLine("Minutes spend: {0}    Fat Lost: {1}", counter, lost);            
  }
  counter++;
  Console.ReadLine();
}

【讨论】:

  • +1 。他也可以删除if statement并放入counter += 5;
  • @SaifHamed,但是在 WriteLine 之间不会调用 Console.ReadLine() 5 次......
  • 你是对的,但我认为它没用。也有人编辑他的答案就像你的答案一样。 ;)
【解决方案4】:

其他答案很好地解释了如何修复您的代码,但这是一种使用简单循环的方法。

for (int minute = 10; minute <= 60; minute += 5)
    Console.WriteLine("Minutes spend: {0}    Fat Lost: {1}", minute, minute * 3.9);
Console.ReadLine();

【讨论】:

    【解决方案5】:

    如果你只是想用 5 来计数,然后将计数器乘以 3.9,你可以这样做:

    double lost;
    int counter = 5;
    while (counter <= 60)   
    {
      lost = counter * 3.9;
      Console.WriteLine("Minutes spend: {0}    Fat Lost: {1}", counter, lost);            
      counter += 5;
      Console.ReadLine();
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多