for 语句的运用和理解
本帖最后由 Anny黄 于 2015-4-25 19:41 编辑为什么,这是为什么,完全不搭边的字都出现了,还是我没理解清楚。难道不是3吗,请各位看得懂的帮忙解释下。先谢谢各位了
#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);
}
}
}
你这代码要表达什么?你想实现什么功能?出现什么问题?能把代码贴出来么?不要截图,截图谁会给你打代码去调试。 没看出,任何问题呀 :titter: 你先讲讲你为什么理解的是输出3?
然后我们再给你分析哪里有问题` Mr.屎壳螂 发表于 2015-4-22 18:07
你先讲讲你为什么理解的是输出3?
然后我们再给你分析哪里有问题`
I,J,K都等于0,循环后都自+1,但还是小于2,自然就要再循环,循环到3了,就不是小于2了,就会结束循环,打印3。这是我的理解 本帖最后由 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的.
为什么是3啊? 呵呵,先执行内层循环后执行外层循环:lol: 。。。哪里有输出3?这个程序输出很正常啊?不能理解楼主的意思? 本帖最后由 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语句里面三个字段的逻辑建议楼主再看一遍 Mr.屎壳螂 发表于 2015-4-22 21:33
理解上有点问题,你看~自加之后 i,j,k分别都从0往上加,之后判断条件是
明白了,谢谢 上面的各位都是神人阿,我表示看完你们说的,我还是不明白楼主敲这段代码想要实现什么功能,就是想要输出i,j,k到3吗?如果这样,改成<=3不就可以了 buaacyg 发表于 2015-4-28 11:02
上面的各位都是神人阿,我表示看完你们说的,我还是不明白楼主敲这段代码想要实现什么功能,就是想要输出i ...
多谢解惑! 程序实现的没有问题啊,就是打出01的组合啊。 。。。。for是相当于i=0;while(i<2){i++;};。。。。所以i在循环体里不会输出3的。。。 automation 发表于 2015-5-2 00:05
。。。。for是相当于i=0;while(i
说错,应该是说等于i=0;while(i<2){printf("%d",i);i++ ; };在printf语句里 i是不会等于3的。。。只有i++那里才会等于三 嵌套循环而已,开始从外到内,然后从内岛外。。。。。。
页:
[1]