for循环不加括号作用域到哪?

啃西瓜的小煤球 2017-07-27 12:45:26

上图中for循环没有大括号 下面有两个if语句 如果第一个if语句条件不满足的话 会进行第二个if语句的判断吗?
不是没有大括号的话 只能到第一个分号处吗?

...全文
1477 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 12 楼 ecjtu_j_yan 的回复:
[quote=引用 7 楼 A1010574609 的回复:] [quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote]
引用 7 楼 A1010574609 的回复:
[quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你的i是在整个函数里面的,而不仅是for里面的,如果你是for(int i;..;..;)就不能引用了[/quote] 666 终于说到点子上了 谢谢您
「已注销」 2017-07-27
  • 打赏
  • 举报
回复
引用 10 楼 A1010574609 的回复:
[quote=引用 8 楼 trytry1992 的回复:] [quote=引用 7 楼 A1010574609 的回复:] [quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你i定义在最上边呗。[/quote] i定义在最上面但是没有赋值啊 i是在for循环中赋的值[/quote] i在for里面赋值,所以啊,for循环以后的i的值就是sqrt(x)。
「已注销」 2017-07-27
  • 打赏
  • 举报
回复
引用 7 楼 A1010574609 的回复:
[quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote]
引用 7 楼 A1010574609 的回复:
[quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你的i是在整个函数里面的,而不仅是for里面的,如果你是for(int i;..;..;)就不能引用了
trytry1992 2017-07-27
  • 打赏
  • 举报
回复
引用 10 楼 A1010574609 的回复:
[quote=引用 8 楼 trytry1992 的回复:] [quote=引用 7 楼 A1010574609 的回复:] [quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你i定义在最上边呗。[/quote] i定义在最上面但是没有赋值啊 i是在for循环中赋的值[/quote] 建议你再看看语法定义
  • 打赏
  • 举报
回复
引用 8 楼 trytry1992 的回复:
[quote=引用 7 楼 A1010574609 的回复:] [quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你i定义在最上边呗。[/quote] i定义在最上面但是没有赋值啊 i是在for循环中赋的值
赵4老师 2017-07-27
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
trytry1992 2017-07-27
  • 打赏
  • 举报
回复
引用 7 楼 A1010574609 的回复:
[quote=引用 6 楼 ecjtu_j_yan 的回复:] 第二个在for的外面
那为什么第二个if能用到for循环里i的值[/quote] 因为你i定义在最上边呗。
  • 打赏
  • 举报
回复
引用 6 楼 ecjtu_j_yan 的回复:
第二个在for的外面
那为什么第二个if能用到for循环里i的值
「已注销」 2017-07-27
  • 打赏
  • 举报
回复
第二个在for的外面
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<math.h>
int prime(int x)
{
int i;
if(x==0||x==1) return 0;
for(i=2;i<=sqrt(x);i++)
if(x%i==0) return 0;
if(i>sqrt(x)) return 1;//是素数
}
int main(){
int a;
while(~scanf("%d",&a)){
printf("%d\n",prime(a)) ;
}
return 0;
}
  • 打赏
  • 举报
回复
引用 2 楼 CSDN_ZYJ_1990 的回复:
for循环运行完之后才会执行第二个if
这个函数验证过了是对的 在for循环执行完后 执行第二个if的话 不知道i的值是多少啊i的值是在for循环中赋值为2的
  • 打赏
  • 举报
回复
引用 1 楼 fight_in_dl 的回复:
引用
不是没有大括号的话 只能到第一个分号处吗?
你的理解是对的,第二个if分支在for循环外部。 题目中的写法不能得到正确的结果。 有条件的话,你可以上机测试验证。
这个素数判定函数是对的 已经验证过了
程序员-ZYJ 2017-07-27
  • 打赏
  • 举报
回复
for循环运行完之后才会执行第二个if
战在春秋 2017-07-27
  • 打赏
  • 举报
回复
引用
不是没有大括号的话 只能到第一个分号处吗?
你的理解是对的,第二个if分支在for循环外部。 题目中的写法不能得到正确的结果。 有条件的话,你可以上机测试验证。
内容概要:本文针对三维非凸空间中的无人机路径规划问题,提出了一种搜索范式统一理论,并结合协同优化方法在Matlab平台上实现了算法仿真。研究重点在于提升复杂三维环境中路径搜索的效率与可行性,通过引入多策略优化机制,有效克服了传统路径规划方法在面对非凸障碍物环境时存在的局限性。文中系统阐述了算法的整体设计框架、多种搜索策略的融合方式以及路径平滑优化技术,并通过详尽的对比实验验证了所提方法在路径长度、安全性及计算效率等方面的优越性能。该研究成果可广泛应用于无人机自主导航系统,显著增强其在城市楼宇、山区等复杂地理场景下的飞行能力与任务执行可靠性。; 适合人群:具备一定Matlab编程基础,从事智能优化、路径规划、无人机控制等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于解决三维复杂环境下无人机、机器人等智能体的路径规划问题;②为非凸空间中的搜索算法设计与优化提供理论支持和技术参考;③辅助完成科研仿真、算法复现与性能对比实验。; 阅读建议:建议读者结合Matlab代码逐步理解算法实现细节,重点关注搜索策略的统一框架与协同优化机制的设计逻辑,同时可参考文中提供的实验设置自行开展性能测试与改进研究。

33,315

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧