我开一个for循环,在它里面定义i,用完了循环之后,下一个语句i无法继承循环终止时i的值使用。如:
for(int i=0;i<=k;i++)
if(m%i==0)break;//这里m前面定义过了
if(i>k)
cout<
即使我在for循环外面提前定义了i,后面if判断时i的值也不会是终止值。
这个问题是VC6和.NET的一个区别。在VC6中,for循环定义的int i,在循环结束后还是可以访问的,作用域是整个函数。但在.NET中,for循环定义的int i,其作用域只在循环体内,所以循环结束后,无法访问这个i,就出现未定义错误。因此需要先定义i,然后才能再循环结束后,用i来作为一些判断条件。
即使我在for循环外面提前定义了i,后面if判断时i的值也不会是终止值。---- 这不可能啊
int i;
for (i =0; i<=k;i++)
{
...
}
你需要复习变量作用域和生命周期的概念
在一个块里定义的变量只能在块里使用
一个函数里定义的局部变量只能在函数内部使用
你需要在外面用,那么要定义到外面去
你for外面定义i的代码给我看看