黑马程序员技术交流社区
标题:
关于自增自减问题!!!
[打印本页]
作者:
7℃洋
时间:
2012-11-12 21:47
标题:
关于自增自减问题!!!
本帖最后由 吴愿涛 于 2012-11-14 01:37 编辑
class Print{
public static void main(String[] args){
int a = 5 ;
System.out.println(a++);
System.out.println(++a);
System.out.println(a--);
System.out.println(--a);
}
}
作者:
罗宝
时间:
2012-11-12 21:56
本帖最后由 罗宝 于 2012-11-12 21:59 编辑
int a = 5 ;
System.out.println(a++); //先执行语句,再计算,打印结果是 5
System.out.println(++a); //先计算,后执行语句,打印结果是 7
System.out.println(a--); //打印结果是 7
System.out.println(--a); //打印结果是 5
作者:
初艳春
时间:
2012-11-12 22:23
class Print{
public static void main(String[] args){
int a = 5 ;
System.out.println(a++); //a++是后加,先输出,后加1(a的值变成6),所以打印结果是5。
System.out.println(++a); //++a是先加,然后输出,所以打印结果是7。
System.out.println(a--); //--a是后减,也是先输出,然后减1(a的值变为6),所以打印结果是7。
System.out.println(--a);//--a是先减,所以a先减1,在输出,所以打印结果是5。
}
}
作者:
马纵驰
时间:
2012-11-12 22:46
class Print{
public static void main(String[] args){
int a = 5 ;
System.out.println(a++); //a++是先加。只不过加完的值没有赋给a而是存在一个临时内存中.临时空间的值是a = 6 ,所以结果是5
System.out.println(++a); //++a是先加。加完的值直接赋值给a。所以是7
System.out.println(a--); //同上,a--是先减,减完后没有赋值。而是存在临时内存空间内。临时内存空间的值是 a = 6打印结果是7
System.out.println(--a);//--a是先减,减完后直接赋值给a
}
}
a++,a--。++a,--a哪个都一样并不是先加或先减的问题。而是先赋值和后赋值的问题。我是这么理解的
作者:
黑马周磊
时间:
2012-11-13 11:48
class Print{
public static void main(String[] args){
int a = 5 ;
System.out.println(a++); //a++ 是先输出a的值,然后再对a进行加1运算,再把a+1后的值赋给变量a。
System.out.println(++a); //++a 是先进行a+1运算,把a+1的值在赋给变量a,再对a进行输出。
System.out.println(a--); //--a 是先输出a的值,然后再对a进行减1运算,再把a-1后的值赋给变量a。
System.out.println(--a);//--a 是先进行a-1运算,把a-1的值在赋给变量a,再对a进行输出。
}
}
a++,a--。++a,--a,,我对这几个加加减减的理解无非就是两种情况,一个是先取后加,一个是先加后取;
作者:
赵学刚
时间:
2012-11-28 00:48
a++,++a单独作用不影响结果,只有和其他对象一起连用才有实际意义,比如:int a=1 if(a++>1){a--}和int a=1 if(++a>1){a--}结果就不一样
作者:
聽聽我dē❤
时间:
2012-11-28 01:01
一个是先赋值再运算,一个是先运算再赋值。
作者:
何伟
时间:
2012-11-28 17:29
放在前面就是先自增或者自减在进行运算,放在后面是先运算完在进行自增自减运算
作者:
李百韬
时间:
2012-11-28 17:36
一个先被调用在自增(减)操作 一个先减(增)操作在被语句调用 记忆很简单 变量和操作符谁在先就先执行谁
作者:
梁胜海
时间:
2012-11-28 18:04
一句话:1) a++是先赋值再运算,即先打印再运算
2)++a,是先运算再赋值,即先运算再打印。
对于你的题目,在打印a++后加上打印语句sop(a);是不是等于6
在a--加上打印语句sop(a);是不是也等于6
作者:
彭璞
时间:
2012-11-28 18:28
自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)
前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)
前缀式是先减1再使用;后缀式是先使用再减1。
自增与自减运算符还遵循以下规律:
可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
它们的运算结果的类型与被运算的变量的类型相同。
作者:
周志强
时间:
2012-11-28 18:48
int a = 5 ;
System.out.println(a++); //先执行,再计算, 分享理解小技巧:因为先看到了"a”,是变量就执行,打印结果是5,语句结束之后a的值是6
System.out.println(++a); //先计算,后执行, 分享理解小技巧:因为先看到了"+",是运算符,那就计算吧,a的值是7,打印结果是7
System.out.println(a--); //先执行,再计算, 分享理解小技巧:因为先看到了"a”,是变量就执行,打印结果是7,语句结束之后a的值是6
System.out.println(--a); //先计算,后执行, 分享理解小技巧:因为先看到了"+",是运算符,那就计算吧,a的值是5,打印结果是5
作者:
马海保
时间:
2012-11-28 18:48
增1减1操作符
1> 增1减1操作符包括
++(前增1,如++i)
--(前减1,如--i)
++(后增1,如i++)
--(后减1,如i--)
这些操作符作用于变量
2> 前增1,前减1操作符
表达式的值就是变量所获得的新值
例如:
m = ++k;
就相当于
k += 1;
m=k;
先增1(减1),后取值
3> 后增1,后减1操作符
表达式的值就是变量原来的旧值
例如:
m = k--;
就相当于
m=k;
k - = 1;
先取值,后增1(减1)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2