黑马程序员技术交流社区
标题:
对i++ 和++i的个人见解方便大家
[打印本页]
作者:
杨健yj
时间:
2012-9-5 23:17
标题:
对i++ 和++i的个人见解方便大家
本帖最后由 杨健yj 于 2012-9-6 18:15 编辑
大家从44行代码处开始看
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// 看几个例子把
// 现验证一下i++;
int i = 0;
int num = i++;// 此时我打印一下i和num的值
System.out.println("num:" + num + "__" + "i:" + i);// num:0__i:1
// 从结果不难看出,就是下面AfterAdd的效果
int j = 0;
System.out.println(AfterAdd(j));//i:1 0
System.out.println("---------------------------------------------");
//验证一下++i;
i = 0;
num = ++i;// 此时我打印一下i和num的值
System.out.println("num:" + num + "__" + "i:" + i);// num:1__i:1
//从结果不难看出符合下面的firstAdd的效果
j=0;
System.out.println(firstAdd(j));
System.out.println("---------------------------------------------");
//看一个例子
i=0;
i = i++ + ++i;//前面i++表达式返回值0,i此时变为1,在计算++i该表达式的返回值为(i+1)即2,i也为2,所以结果为2
System.out.println("i:"+i);
System.out.println("---------------------------------------------");
num=0;
i=0;
num = i++ +i*10+ ++i*10+i*100;
/*
* i++表达式的返回值为0,i=1;
* i*10=10
* ++i*10 表达式的返回值为(++i)*10就是2*10=20,i=2;
* 2*100=200
* 最终结果 0+10+20+200=230
* */
System.out.println("num="+num);//大家以后这样理解就不会出错的
//最后看一下f1()这个函数,大家一定都会了把,希望帮助了大家,呵呵
}
// 自己对i++ 和 ++i的一些理解,主要是方便大家,我们可以把i++和++i理解为两个
// 函数具体见下
public static int AfterAdd(int i) {// 这是对应i++的函数
int temp;// 定义一个变量,它是函数的返回值,大家困惑的往往是那些死概念(先参与运算,在加1)
// 我的理解就是返回值这一概念,所谓的先参与运算就是指先记住i++表达式的返回值,然后i在加1
temp = i;// 先记住返回值,在加1
i = i + 1;
System.out.println("i:" + i);// 在外面不会改变实际i的值就在内部演示大家明白就行了,实际i++时i的值是会改变的
return temp;
}
public static int firstAdd(int i) {
int temp;// 定义一个变量,它是函数的返回值
i = i + 1;// 先加1在记住返回值
temp = i;
System.out.println("i:" + i);// // 在外面不会改变实际i的值就在内部演示大家明白就行了,实际++i时i的值是会改变的
return temp;
}
public static void f1() {
int count = 0;
for (int i = 0; i < 10; i++) {
count = count++;
}
System.out.println("count=" + count);
}
}
复制代码
作者:
王德升
时间:
2012-9-6 08:52
LZ你看看你第二个num的值是不是0,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2