运算符(operator)和表达式:
运算符是指程序中用来处理某些数据的符号或运算功能。
单目运算符:所谓单目就是指在表达式中只有一个运算量。比如-5。其中已经做过一次运算。这里的“-”就是一个单目运算符。他表示讲运算量的正负颠倒。所以5就变成-5了。 单目运算符大概有 +正值 -负值 ++加1 ――减1 这四个。
双目运算符:运算符处理的对象有两个。就是双目比如1+1。。。
三目以后在说。
句元(token)有些有写运算符是由两个以上的运算符。但在java中还是要把它看成一个符号。比如 》= (大于等于号)等等。
各种运算符:
递增和递减运算符:
概念相关东东:
首先这是一个单目运算符。其实这种运算符在C还有C++十分常见。
它可以放在任何运算符的前面和后面成为,前置用法和后置用法。
该运算符很常用,不过用时候要细心,以免发生错误,毕竟这种错误在差错的时候很不好找。
该运算符只支持整数或者浮点类型数据,也就是byte short int long float double.而其它想
Boolean,还有char是不支持的。
另外,递加和递减运算符也只能用在变量(variables)上。
用法:
前置用法:所谓前置就是把运算符放在运算量的前面,例如:++k ,这样++k会把原来的k值加1。。但是以后在用到k的值则变成了(++k)了,而不是没加1的k。
后置用法:所谓后置就是把运算符放到运算量的后面,例如:k++ ,这样 k++,这样会把k原来的值+1,但是整个k++的结果是k原来的值。这也是同++k的不同。其实就相当于x=x+1;
这么干说说不清楚举个例子就一抖大开了。
例子1:int x=10,y;
y=(++x)
System.out.println(x);
System.out.println(y);
//这里x得到11,y也是11
首先运算x++得到x值是11,然后把11赋值给y,所以y也等于11。 而下面这个不同。
int x=10,y;
y=(x++)
System.out.println(x);
System.out.println(y);
//这里x=11 y=10
和上面不同的是首先先算y=x;那么y=10,整个式子算完在算x++,所以x=11
例子2:int x=10,y
y=++x-10;
这里式子的运算符为递增而且前置运算,所以先算++x,也就是10+1=11
然后在把11-10所以最后y结果是1;
int x=10,y
y=x++-10;
而这个式子有所不同,这个式子也有递增运算符,但是是后置,后算。先算下x-10;y得到结果0。然后在算x++。X的值是11。而x++并不参与到y值里面去。
例子3
int a=3;
System.out.println(a);
System.out.println(a++);
System.out.println(a);
//比如这个答案是334
第一个是3,第2个是后置先得到a值3,然后在加1,第三个怎么说由于前一个a+1变成4,这是a已经赋值成了4。第三个要用第2个的值,所以是4。
和下面例子对比一下。
int a=3;
System.out.println(a);
System.out.println(++a);
System.out.println(a);
答案是344。区别只在于前置后置的问题。第2个前置了,先加1得4。
我相信。。看完这3个例子应该都会了。。。我说不清楚的地方例外。。
Java小贴士:比如这个I=++j;和I=(++j);两个都没有错,但是我还是觉得应该加()便于查看,而且程序显得不乱。以便改错时候方便。
Java小贴士:每个类型都有其初始值,比如这个式子。Int I=10,k;其实这样写不好,我要说的是,就算没有初始值,最好也加上,不要养成使用初始值的习惯。应该int I=10,k=0;
Java小贴士:呵呵有个常见的错误,增量减量是不能用于表达式的。
比如++(y+1);虽然看起来好像没错,其实这是语法错误。死记就好。。。
Java小贴士:要注意一下例三那种题,请注意x当前的值。当然例三那种是最简单的。但是方法不变。
Java小贴士:比如这个int I=3,k=0;
J=(I++)+(I++)+(I++);
System.out.println(k);
System.out.println(i);
这里j=9;而I则等于第一个3+1赋值以后第而个2为4在++为5,最后在++则为6。所以I=6;
Java小贴事:暂缺,注意括号问题。。。没有关系。比如
int i=5,j=6,k=7;
++i+(--j)+(++k);
括号是为了看起来清楚才写的。这个写不写都行拉。先算++i->--j->++k
另注:应为我用word打的,有些大小写都是word自动更正的。我也没有办法。。汗。。。
有错误,请根贴。小菜鸟水平有限,高手看了就当一笑,如有错误,还请海涵。。