提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
本文主要是探讨 i++, ++i, i–, --i 在循环语句 for、while、do…while中的使用
一、for 循环语句
1. i++ 和 ++i 的使用
在for循环中,i++ 和 ++i 对于循环体来说没有任何区别——循环次数相同、循环体内的值相等。对于 for 循环而言,两种情况下的执行过程都是一样的:
i=0,满足i < 5,执行循环体(循环体内i=0),执行i=i+1i=1,满足i < 5,执行循环体(循环体内i=1),执行i=i+1i=2,满足i < 5,执行循环体(循环体内i=1),执行i=i+1i=3,满足i < 5,执行循环体(循环体内i=1),执行i=i+1i=4,满足i < 5,执行循环体(循环体内i=1),执行i=i+1i=5,不满足i < 5,循环结束
代码如下(示例):
for (int i = 0; i < 5; i++)
printf("%d\n",i);
printf("*****************\n");
for (int i = 0; i <5; ++i)
printf("%d\n",i);
输出:
0
1
2
3
4
*****************
0
1
2
3
4
2. i-- 和 --i 的使用
在for 循环中,i-- 和 --i 对于循环体来说没有任何区别——循环次数相同、循环体内的值相等,对于for 循环而言,两种情况下的执行过程都是一样的:
i=5,满足i > 0,执行循环体(循环体内i=5),执行i=i-1i=4,满足i > 0,执行循环体(循环体内i=4),执行i=i-1i=3,满足i > 0,执行循环体(循环体内i=3),执行i=i-1i=2,满足i > 0,执行循环体(循环体内i=2),执行i=i-1i=1,满足i > 0,执行循环体(循环体内i=1),执行i=i-1i=0,不满足i > 0,循环结束
代码如下(示例):
for (int i = 5; i > 0; i--)
printf("%d\n",i);
printf("*****************\n");
for (int i = 5; i > 0; --i)
printf("%d\n",i);
输出:
5
4
3
2
1
*****************
5
4
3
2
1
二、while 循环语句
1. i++ 和 ++i 的使用
在 while 循环中,i++ 和 ++i是不同的。对于 i++, 执行顺序是这样的:先判断 --> 再计算 i=i+1 --> 后进入循环体;对于 ++i, 执行顺序是这样的:先计算 i=i+1–> 再判断 --> 后进入循环体。两种情况下,都是本次本次对于i的计算对本次进入循环体起作用。具体说来,对于 while 循环而言,i++ 和 ++i的执行如下:
i++的情况
i = -5,满足i != 0,计算i=i+1,执行循环体(循环体内i = -4)i = -4,满足i != 0,计算i=i+1,执行循环体(循环体内i = -3)i = -3,满足i != 0,计算i=i+1,执行循环体(循环体内i = -2)i = -2,满足i != 0,计算i=i+1,执行循环体(循环体内i = -1)i = -1,满足i != 0,计算i=i+1,执行循环体(循环体内i = 0)i=0,不满足i != 0,循环结束
++i的情况
i = -5,计算i=i+1(i=-4),满足i != 0,执行循环体(循环体内i = -4)i = -4,计算i=i+1(i=-3),满足i != 0,执行循环体(循环体内i = -3)i = -3,计算i=i+1(i=-2),满足i != 0,执行循环体(循环体内i = -2)i = -2,计算i=i+1(i=-1),满足i != 0,执行循环体(循环体内i = -1)i = -1,计算i=i+1(i=0),不满足i != 0,循环结束
代码如下(示例):
int i=-5;
while(i++)
{
printf("%d\n",i);
}
printf("*****************\n");
i=-5;
while(++i)
{
printf("%d\n",i);
}
输出:
-4
-3
-2
-1
0
*****************
-4
-3
-2
-1
2. i--和 --i 的使用
在 while 循环中,i-- 和 --i是不同的。对于 i--, 执行顺序是这样的:先判断 --> 再计算 i=i-1 --> 后进入循环体;对于 --i, 执行顺序是这样的:先计算 i=i-1–> 再判断 --> 后进入循环体。两种情况下,都是本次本次对于i的计算对本次进入循环体起作用。具体说来,对于 while 循环而言,i-- 和 --i的执行如下:
i--的情况
i = 5,满足i != 0,计算i=i-1,执行循环体(循环体内i = 4)i = 4,满足i != 0,计算i=i-1,执行循环体(循环体内i = 3)i = 3,满足i != 0,计算i=i-1,执行循环体(循环体内i = 2)i = 2,满足i != 0,计算i=i-1,执行循环体(循环体内i = 1)i = 1,满足i != 0,计算i=i-1,执行循环体(循环体内i = 0)i=0,不满足i != 0,循环结束
--i的情况
i = 5,计算i=i-1(i=4),满足i != 0,执行循环体(循环体内i = 4)i = 4,计算i=i-1(i=3),满足i != 0,执行循环体(循环体内i = 3)i = 3,计算i=i-1(i=2),满足i != 0,执行循环体(循环体内i = 2)i = 2,计算i=i-1(i=1),满足i != 0,执行循环体(循环体内i = 1)i = 1,计算i=i-1(i=0),不满足i != 0,循环结束
代码如下(示例):
int i=5;
while(i--)
{
printf("%d\n",i);
}
printf("*****************\n");
i=5;
while(--i)
{
printf("%d\n",i);
}
输出:
4
3
2
1
0
*****************
4
3
2
1
三、do…while 循环语句
1. i++ 和 ++i 的使用
do...while 循环与 while循环类似,它等价于:执行一次循环体 + while 循环
代码如下(示例):
int i=-5;
do
{
printf("%d\n",i);
}while(i++);
i=-5;
printf("*****************\n");
do
{
printf("%d\n",i);
}while(++i);
输出:
-5
-4
-3
-2
-1
0
*****************
-5
-4
-3
-2
-1
2. i-- 和 --i 的使用
do…while 循环与 while循环类似,它等价于:执行一次循环体 + while 循环
代码如下(示例):
int i=5;
do
{
printf("%d\n",i);
}while(i--);
i=5;
printf("*****************\n");
do
{
printf("%d\n",i);
}while(--i);
输出:
5
4
3
2
1
0
*****************
5
4
3
2
1
本文探讨了i++, ++i, i--, --i在for、while及do...while循环中的应用差异,详细解析了不同场景下变量的变化及时机的影响。
1万+

被折叠的 条评论
为什么被折叠?



