for循环中的当前上下文中不存在变量

时间:2015-11-29 14:55:32

标签: c# visual-studio for-loop

这可能是一件非常明显的事情,并且可能会让我接受一部分向下投票但是...... Visual Studio告诉我int i当前上下文中不存在if/else声明。这是怎么回事?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LongSequence
{
    class Program
    {
        static void Main()
        {
            int numberToPrint;

            for (int i = 2; i <= 1000; i++);
            {  
                if (i % 2 == 0)

                    numberToPrint = i;
                else 
                    numberToPrint = i *(-1);
                Console.WriteLine(numberToPrint);  
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

for (int i = 2; i <= 1000; i++);

由于;,此循环没有正文。所以它根本没有做任何事情。 因此,您的其他代码被视为另一个语句,它超出了循环的范围,其中创建了变量i

答案 1 :(得分:1)

For循环不应该有终止,在你的代码中,它会给出一个错误,因为它终止于那里。之后没有定义i的值,改变它如下所示

for (int i = 2; i <= 1000; i++)
    {
     if (i % 2 == 0)
         numberToPrint = i;
     else 
         numberToPrint = i *(-1);
         Console.WriteLine(numberToPrint);
     }