A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨健yj 中级黑马   /  2012-9-5 23:17  /  1416 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨健yj 于 2012-9-6 18:15 编辑

大家从44行代码处开始看
  1. public class Demo1 {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // 看几个例子把
  7.                 // 现验证一下i++;
  8.                 int i = 0;
  9.                 int num = i++;// 此时我打印一下i和num的值
  10.                 System.out.println("num:" + num + "__" + "i:" + i);// num:0__i:1
  11.                 // 从结果不难看出,就是下面AfterAdd的效果
  12.                 int j = 0;
  13.                 System.out.println(AfterAdd(j));//i:1  0
  14.                
  15.                 System.out.println("---------------------------------------------");
  16.                 //验证一下++i;
  17.                 i = 0;
  18.                 num = ++i;// 此时我打印一下i和num的值
  19.                 System.out.println("num:" + num + "__" + "i:" + i);// num:1__i:1
  20.                 //从结果不难看出符合下面的firstAdd的效果
  21.                 j=0;
  22.                 System.out.println(firstAdd(j));
  23.                 System.out.println("---------------------------------------------");
  24.                 //看一个例子
  25.                 i=0;
  26.                 i = i++ + ++i;//前面i++表达式返回值0,i此时变为1,在计算++i该表达式的返回值为(i+1)即2,i也为2,所以结果为2
  27.                 System.out.println("i:"+i);
  28.                 System.out.println("---------------------------------------------");
  29.                 num=0;
  30.                 i=0;
  31.                 num = i++ +i*10+ ++i*10+i*100;
  32.                 /*
  33.                  * i++表达式的返回值为0,i=1;
  34.                  * i*10=10
  35.                  * ++i*10 表达式的返回值为(++i)*10就是2*10=20,i=2;
  36.                  * 2*100=200
  37.                  * 最终结果 0+10+20+200=230
  38.                  * */
  39.                 System.out.println("num="+num);//大家以后这样理解就不会出错的
  40.                 //最后看一下f1()这个函数,大家一定都会了把,希望帮助了大家,呵呵
  41.         }

  42.         // 自己对i++ 和 ++i的一些理解,主要是方便大家,我们可以把i++和++i理解为两个
  43.         // 函数具体见下
  44.         public static int AfterAdd(int i) {// 这是对应i++的函数
  45.                 int temp;// 定义一个变量,它是函数的返回值,大家困惑的往往是那些死概念(先参与运算,在加1)
  46.                 // 我的理解就是返回值这一概念,所谓的先参与运算就是指先记住i++表达式的返回值,然后i在加1
  47.                 temp = i;// 先记住返回值,在加1
  48.                 i = i + 1;
  49.                 System.out.println("i:" + i);// 在外面不会改变实际i的值就在内部演示大家明白就行了,实际i++时i的值是会改变的
  50.                 return temp;
  51.         }

  52.         public static int firstAdd(int i) {
  53.                 int temp;// 定义一个变量,它是函数的返回值
  54.                 i = i + 1;// 先加1在记住返回值
  55.                 temp = i;
  56.                 System.out.println("i:" + i);// // 在外面不会改变实际i的值就在内部演示大家明白就行了,实际++i时i的值是会改变的
  57.                 return temp;
  58.         }

  59.         public static void f1() {
  60.                 int count = 0;

  61.                 for (int i = 0; i < 10; i++) {

  62.                         count = count++;

  63.                 }

  64.                 System.out.println("count=" + count);

  65.         }

  66. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
LZ你看看你第二个num的值是不是0,

点评

tks  发表于 2012-9-6 18:16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马