鱼C论坛

 找回密码
 立即注册
查看: 1632|回复: 17

for 语句的运用和理解

[复制链接]
发表于 2015-4-21 21:57:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Anny黄 于 2015-4-25 19:41 编辑

0WEFR8KBDF16JO7JP0_`LPS.png 为什么,这是为什么,完全不搭边的字都出现了,还是我没理解清楚。难道不是3吗,请各位看得懂的帮忙解释下。先谢谢各位了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-21 22:44:21 | 显示全部楼层
#include<stdio.h>
void main()
{
   int i,j,k;
   scanf("输出的三个数:");
        for(i=0;i<2;i++)
        {
                for(j=0;j<2;j++)
                {
                        for(k=0;k<2;k++)
                                printf("i=%d\nj=%d\nk=%d\n",i,j,k);
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-22 09:08:03 | 显示全部楼层
你这代码要表达什么?你想实现什么功能?出现什么问题?能把代码贴出来么?不要截图,截图谁会给你打代码去调试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-22 13:43:24 | 显示全部楼层
没看出,任何问题呀 :titter:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-22 18:07:58 | 显示全部楼层
你先讲讲你为什么理解的是输出3?
然后我们再给你分析哪里有问题`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-22 20:27:25 | 显示全部楼层
Mr.屎壳螂 发表于 2015-4-22 18:07
你先讲讲你为什么理解的是输出3?
然后我们再给你分析哪里有问题`

I,J,K都等于0,循环后都自+1,但还是小于2,自然就要再循环,循环到3了,就不是小于2了,就会结束循环,打印3。这是我的理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-22 21:33:42 | 显示全部楼层
本帖最后由 Mr.屎壳螂 于 2015-4-22 21:35 编辑
Anny黄 发表于 2015-4-22 20:27
I,J,K都等于0,循环后都自+1,但还是小于2,自然就要再循环,循环到3了,就不是小于2了,就会结束循环, ...

理解上有点问题,你看~自加之后 i,j,k分别都从0往上加,之后判断条件是<2,说明只有小于2 的时候才运行循环内的语句,当你的i,j,k最先是K到了2,也就是说K的循环就运行两次就跳出,返回上一个循环,所有 的循环结束,i,j,k最大都只会到2
不会到3,因为到了2之后就循环就结束了,你可以试试加在最后一个输出,看,最后的i,j,k都是2,没有一个增加到3的.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-23 16:07:53 | 显示全部楼层
为什么是3啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-25 16:12:37 | 显示全部楼层
呵呵,先执行内层循环后执行外层循环:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-25 18:12:07 | 显示全部楼层
。。。哪里有输出3?这个程序输出很正常啊?不能理解楼主的意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-25 18:14:35 | 显示全部楼层
本帖最后由 JayChen 于 2015-4-25 18:15 编辑
Anny黄 发表于 2015-4-22 20:27
I,J,K都等于0,循环后都自+1,但还是小于2,自然就要再循环,循环到3了,就不是小于2了,就会结束循环, ...

等于 2的时候已经不会执行for里面的语句了,所以2不会被输出,虽然此时i,j,k等于2。如果你在最后面再加一句printf("%d %d %d",i,j,k);就会输出2.for语句里面三个字段的逻辑建议楼主再看一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-25 19:41:26 | 显示全部楼层
Mr.屎壳螂 发表于 2015-4-22 21:33
理解上有点问题,你看~自加之后 i,j,k分别都从0往上加,之后判断条件是

明白了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-28 11:02:56 | 显示全部楼层
上面的各位都是神人阿,我表示看完你们说的,我还是不明白楼主敲这段代码想要实现什么功能,就是想要输出i,j,k到3吗?如果这样,改成<=3不就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-28 20:47:26 | 显示全部楼层
buaacyg 发表于 2015-4-28 11:02
上面的各位都是神人阿,我表示看完你们说的,我还是不明白楼主敲这段代码想要实现什么功能,就是想要输出i ...

多谢解惑!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-1 13:47:16 From FishC Mobile | 显示全部楼层
程序实现的没有问题啊,就是打出01的组合啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 00:05:33 | 显示全部楼层
。。。。for是相当于i=0;while(i<2){i++;};。。。。所以i在循环体里不会输出3的。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 00:13:58 | 显示全部楼层
automation 发表于 2015-5-2 00:05
。。。。for是相当于i=0;while(i

说错,应该是说等于i=0;while(i<2){printf("%d",i);i++ ; };在printf语句里 i是不会等于3的。。。只有i++那里才会等于三
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-2 16:39:15 | 显示全部楼层
嵌套循环而已,开始从外到内,然后从内岛外。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 00:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表