m0_73673015 2023-03-21 10:32 采纳率: 100%
浏览 23
已结题

关于c++中for循环i值结束循环后无法再次使用的问题

我开一个for循环,在它里面定义i,用完了循环之后,下一个语句i无法继承循环终止时i的值使用。如:
for(int i=0;i<=k;i++)
if(m%i==0)break;//这里m前面定义过了
if(i>k)
cout<<m<<endl;
就好比这里,在我的cod sever里面会报错i未定义;
即使我在for循环外面提前定义了i,后面if判断时i的值也不会是终止值。

  • 写回答

5条回答 默认 最新

  • 快乐鹦鹉 2023-03-21 10:38
    关注

    这个问题是VC6和.NET的一个区别。在VC6中,for循环定义的int i,在循环结束后还是可以访问的,作用域是整个函数。但在.NET中,for循环定义的int i,其作用域只在循环体内,所以循环结束后,无法访问这个i,就出现未定义错误。因此需要先定义i,然后才能再循环结束后,用i来作为一些判断条件。
    即使我在for循环外面提前定义了i,后面if判断时i的值也不会是终止值。---- 这不可能啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月21日