C语言循环语句中 i++, ++i, i--, --i的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文主要是探讨 i++, ++i, i–, --i 在循环语句 for、while、do…while中的使用


一、for 循环语句

1. i++++i 的使用

for循环中,i++++i 对于循环体来说没有任何区别——循环次数相同、循环体内的值相等。对于 for 循环而言,两种情况下的执行过程都是一样的:

  • i=0,满足 i < 5,执行循环体(循环体内 i=0),执行i=i+1
  • i=1,满足 i < 5,执行循环体(循环体内 i=1),执行i=i+1
  • i=2,满足 i < 5,执行循环体(循环体内 i=1),执行i=i+1
  • i=3,满足 i < 5,执行循环体(循环体内 i=1),执行i=i+1
  • i=4,满足 i < 5,执行循环体(循环体内 i=1),执行i=i+1
  • i=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-1
  • i=4,满足 i > 0,执行循环体(循环体内 i=4),执行i=i-1
  • i=3,满足 i > 0,执行循环体(循环体内 i=3),执行i=i-1
  • i=2,满足 i > 0,执行循环体(循环体内 i=2),执行i=i-1
  • i=1,满足 i > 0,执行循环体(循环体内 i=1),执行i=i-1
  • i=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+1i=-4),满足 i != 0,执行循环体(循环体内 i = -4
  • i = -4,计算i=i+1i=-3),满足 i != 0,执行循环体(循环体内 i = -3
  • i = -3,计算i=i+1i=-2),满足 i != 0,执行循环体(循环体内 i = -2
  • i = -2,计算i=i+1i=-1),满足 i != 0,执行循环体(循环体内 i = -1
  • i = -1,计算i=i+1i=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-1i=4),满足 i != 0,执行循环体(循环体内 i = 4
  • i = 4,计算i=i-1i=3),满足 i != 0,执行循环体(循环体内 i = 3
  • i = 3,计算i=i-1i=2),满足 i != 0,执行循环体(循环体内 i = 2
  • i = 2,计算i=i-1i=1),满足 i != 0,执行循环体(循环体内 i = 1
  • i = 1,计算i=i-1i=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

猜你喜欢

转载自blog.csdn.net/fdcp123/article/details/109014110
i++