黑马程序员技术交流社区

标题: while循环结构中的 ++count 和count++的区别 [打印本页]

作者: ☜_☞    时间: 2014-3-10 21:17
标题: while循环结构中的 ++count 和count++的区别
#include <stdio.h>

int main()
{
   //先确定需要重复执行的定义
   //再确定约束条件
   //定义一个变量记录的次数
   // 记录 3的倍数的个数
   int count = 0;
   // 记录检查当前的数值
   int number = 0;
  
   while (number < 100) {
      
       number++;
       //说明 number是 3的倍数
       if (number%3 == 0)
       {
           count++;
       }
       printf( "3的倍数的个数是:%d\n",count);
   }
  
   return 0;
}
为什么把++放在count前边得出的结果是
3的倍数的个数是:0
3的倍数的个数是:0
3的倍数的个数是:1
3的倍数的个数是:1
3的倍数的个数是:1
3的倍数的个数是:2
3的倍数的个数是:2
3的倍数的个数是:2
3的倍数的个数是:3
3的倍数的个数是:3
3的倍数的个数是:3
3的倍数的个数是:4
3的倍数的个数是:4
3的倍数的个数是:4
3的倍数的个数是:5
3的倍数的个数是:5
3的倍数的个数是:5
3的倍数的个数是:6
3的倍数的个数是:6
3的倍数的个数是:6
3的倍数的个数是:7
3的倍数的个数是:7
3的倍数的个数是:7
3的倍数的个数是:8
3的倍数的个数是:8
3的倍数的个数是:8
3的倍数的个数是:9
3的倍数的个数是:9
3的倍数的个数是:9
3的倍数的个数是:10
3的倍数的个数是:10
3的倍数的个数是:10
3的倍数的个数是:11
3的倍数的个数是:11
3的倍数的个数是:11
3的倍数的个数是:12
3的倍数的个数是:12
3的倍数的个数是:12
3的倍数的个数是:13
3的倍数的个数是:13
3的倍数的个数是:13
3的倍数的个数是:14
3的倍数的个数是:14
3的倍数的个数是:14
3的倍数的个数是:15
3的倍数的个数是:15
3的倍数的个数是:15
3的倍数的个数是:16
3的倍数的个数是:16
3的倍数的个数是:16
3的倍数的个数是:17
3的倍数的个数是:17
3的倍数的个数是:17
3的倍数的个数是:18
3的倍数的个数是:18
3的倍数的个数是:18
3的倍数的个数是:19
3的倍数的个数是:19
3的倍数的个数是:19
3的倍数的个数是:20
3的倍数的个数是:20
3的倍数的个数是:20
3的倍数的个数是:21
3的倍数的个数是:21
3的倍数的个数是:21
3的倍数的个数是:22
3的倍数的个数是:22
3的倍数的个数是:22
3的倍数的个数是:23
3的倍数的个数是:23
3的倍数的个数是:23
3的倍数的个数是:24
3的倍数的个数是:24
3的倍数的个数是:24
3的倍数的个数是:25
3的倍数的个数是:25
3的倍数的个数是:25
3的倍数的个数是:26
3的倍数的个数是:26
3的倍数的个数是:26
3的倍数的个数是:27
3的倍数的个数是:27
3的倍数的个数是:27
3的倍数的个数是:28
3的倍数的个数是:28
3的倍数的个数是:28
3的倍数的个数是:29
3的倍数的个数是:29
3的倍数的个数是:29
3的倍数的个数是:30
3的倍数的个数是:30
3的倍数的个数是:30
3的倍数的个数是:31
3的倍数的个数是:31
3的倍数的个数是:31
3的倍数的个数是:32
3的倍数的个数是:32
3的倍数的个数是:32
3的倍数的个数是:33
3的倍数的个数是:33

不是在while循环结构中 ++放在前后都是一样的吗?


作者: 雨后暖暖    时间: 2014-3-10 21:25
简单的来说,++count 和 count++,在单独使用时,就是 count = count + 1。


而 a = ++ count,相当于 count = count+1; a =  count


而 a =  count ++,相当于 a =  count; count = count + 1;
作者: z82454642    时间: 2014-3-10 21:26
不一样的 a++是先让a参与运算再递增,++a是先让a加1再参与运算
作者: lixiangzhou    时间: 2014-3-10 21:31
如果不把count++或者++count赋值给变量的话,count++和++count的用法是没有区别的
如果赋值给某个变量,此时才会有区别(此处假设count = 10, a 为整型变量):
a = count++; // count先赋值,后自增 --> a = 10; count = 11;
a = ++count; // count先自增,后赋值 --> a = 12; count = 12;
此外,如果在运算的时候也会有区别
int a = 0;
int count = 1;
a   =        (count++) + (++count); // 相当于a = 1 + 3;
// count的值: 2                3


作者: pprgra56    时间: 2014-3-11 10:26
当然不一样 i++ 是先让i参加运算再递增,++i是先让i加1再参与运算
另外 你应该把print语句放在大括号 的外边  最后的结果是一样的
作者: ☜_☞    时间: 2014-3-11 17:01
lixiangzhou 发表于 2014-3-10 21:31
如果不把count++或者++count赋值给变量的话,count++和++count的用法是没有区别的
如果赋值给某个变量,此 ...

{:2_32:} 3q 3q
作者: ☜_☞    时间: 2014-3-11 17:02
雨后暖暖 发表于 2014-3-10 21:25
简单的来说,++count 和 count++,在单独使用时,就是 count = count + 1。

{:2_35:} 3q
作者: 敢于承担    时间: 2014-3-11 23:50
难道你把number++放在后面时候,显示的不一样吗?
作者: 四季列车    时间: 2014-3-13 14:43
第一种情况: a=3; b=a++; 运行后 b=3,a=4  第二种情况: a=3; b=++a; 运行后 b=4,a=4




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2