新手浅析对for的理解 初步 理解
c语言吧
全部回复
仅看楼主
level 10
w15tp 楼主
首先 源代码是 这样的
#include<stdio.h>
int main(void)
{
int i;
int k;
int j;
for(i = 0; i < 4; i++)
{
for(j = 0; j <= 2-i; j++)
{
printf(" ");
}
for(k = 0; k <= 2*i; k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
首先 最开始 的for循环 做了什么~~
for(i = 0; i < 4; i++) //貌似 暂时 看不懂,, 先略过。~~
然后理解
for(j = 0; j <= 2-i; j++)
{
printf(" ");
}
/ 因为 原来的 i 被初始化为 零, 所以在这里 j <= 2 - i 就换成j <=2 了
即, for(j = 0; j <= 2 ;j++)
这时候, j 产生了 3个单位。 即 3个空格
然后,
此时 。 i还是 0;
for(k = 0; k <= 2*i; k++)
{
printf("*");
}
即,
for(k = 0; k <= 0; k++)
也就是, k产生了 1个单位。 即 1个 * 号/。
然后是 然后。 进入下一个printf() 语句, 输出转折, 进入下一行。(即下一次循环)
此时 第一行的结果就是 ( ~ 表示空格)
~~~*
因为 for 中 初始数值 只在第一次的时候被引用, 即,
此刻, i 被 i++ 影响, 由 0 变为 1;
然后,进入 第一个for 循环,, 即
for(j = 0; j <= 2-i; j++)
替换掉 i就是
for(j = 0; j <= 2-1; j++)
也就是 j < 1
又因为 j 的初始数值是 0 。 也就是说。。 j++ 只能产生两个 单位,即 两个空格。
然后,第二个 for 循环 。
for(k = 0; k <= 2*i; k++)
替换掉 i ,
k <= 2*1 == k<=2;
自然的, k 也产生了三个单位, 即 ***
然后,进入 printf() 语句, 受此影响进入下一行。
此时的结果就是
~~***
结合前面的 ~~~* 就是
~~~*
~~***
怎么样 ,是不是 有了 初步的样子。。
以后的循环同理可得出结果~~~
2014年01月20日 07点01分 1
level 11
写得太复杂了,简单几句话吧。
for 后面的小括号里一般有三条代码,使用两个分号分割:
for(表达式A ;表达式B ;表达式C )
{表达式D}
A 只跑一遍;
B 是条件判断代码,成立的话就跑 D;
D 跑完一遍后,就执行 C,然后判断此时 B 是否还成立在决定跑不跑 D。
2014年01月20日 08点01分 2
所以说。 初步~~ 刚看这东西~~~~
2014年01月20日 08点01分
level 10
w15tp 楼主
/ ~ 表示空格
~~~~~*
~~~~~**
~~~~~***
~~~~~****
代码。。
#include<stdio.h>
int main(void)
{
int i,k,j;
for(i = 0; i < 4; i++)
{
for(j = 5; j >= 0; j--)
printf(" ");
for(k = 0; k <= 2*i; k++)
printf("*");
printf("\n");
}
return 0;
}
for(k = 0; k <= 2*i; k++) 里面。 k< 2*i 这个貌似 很困惑。 // 等等再想想。。
2014年01月20日 08点01分 3
1