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

关于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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度