变量dos';t存在于for循环中的当前上下文中

本文关键字:循环 上下文 for dos 存在 变量 | 更新日期: 2023-09-27 18:24:54

这可能是一件显而易见的事情,可能会让我得到一部分反对票,但。。。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);  
            }
        }
    }
}

变量dos';t存在于for循环中的当前上下文中

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

由于;,此循环没有正文。所以它什么都没做。因此,您的其他代码被视为另一条语句,它在循环的范围之外,在循环中创建了变量i

For循环不应该有终止,在您的代码中,它会给出一个错误,因为它在那里终止。所以i的值在那之后就没有定义了,把它改成下面的样子

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