Java学习笔记---运算符与表达式
一、Java运算符
1、赋值运算符
在Java中等号并不是"等于"的意思,而是为等号前的变量名"赋值"的意思。
例如:
1 int num=25; //表示变量名num被赋值为25这个值。
2、一元运算符
对于大部分的表达式而言,运算符的前后都会有操作数。但是有一种运算符较特别,它只需要一个操作数,称为一元运算符。
下面的语句就是由一元运算符与一个操作数所组成的。
1 +3 ; // 表示正3 2 ~a ; // 表示取a的补码 3 b = -a ; // 表示负a的值赋值给变量b存放 4 !a ; // a的NOT运算,若a为零,则!a为1,若a不为零,则!a为零
3、算术运算符
加、减、乘、除都会,这里说说余数运算符%,下面的语句是余数运算符的使用范例。
5%3=2 8%2=0 4%4=0 3%5=3 5%7=5
将余数运算符“%”前面的操作数除以后面的操作数,取其所得到的余数。
4、关系运算符
建议大家在这里结合条件语句if学习更加容易理解,例:
if(x>0) //括号中为关系运算符表达式 System.out.println("x大于0"); //条件成立执行输出括号中的语句
5、递增与递减运算符
1 /*这是一个新的JAVA文档,请修改类名使用*/ 2 3 public class TestJava3_18 4 { 5 public static void main(String[] args) 6 { 7 int i=0,j=0,a=1,b=1; 8 int m=0,n=0,x=1,y=1; 9 i=a++; // a先赋值予给变量i,之后a再自加1 10 System.out.println("i值为:"+i); // 输出i的值 11 System.out.println("a赋值后再自加1的值为:"+a); // 输出a的值 12 j=b--; // b先赋值予给变量j,之后b再自减1 13 System.out.println("j值为:"+j); // 输出j的值 14 System.out.println("b赋值后再自减1值为:"+b); // 输出b的值 15 m=++x; // x值先自加1,再将x的值赋予给变量m 16 System.out.println("m值为:"+m); // 输出m的值 17 System.out.println("x加1后赋值为:"+x); // 输出x的值 18 n=--y; // y值先自减1,再将y的值赋予给变量n 19 System.out.println("n值为:"+n); // 输出n的值 20 System.out.println("y减1后赋值值为:"+y); // 输出y的值 21 22 } 23 }
这里大家要注意这两个运算符它所在的置不同所产生的输出结果不同,输出如下:
6、逻辑运算符
当使用逻辑运算符&&时,运算符前后的两个操作数的返回值皆为真,运算的结果才会为真;
使用逻辑运算符“||”时,运算符前后的两个操作数的返回值只要有一个为真,运算的结果就会为真,如下面的语句:
(1) a>0 && b> 0 // 两个操作数皆为真,运算结果才为真返回true;
(2) a>0 || b>0 // 两个操作数只要一个为真,运算结果就为真false;
还是动手编写一个例子加深印象吧
1 /*这是一个新的JAVA文档,请修改类名使用*/ 2 3 public class TestJava3_19 4 { 5 public static void main(String[] args) 6 { 7 int a=60; 8 if(a<0||a>100) 9 System.out.println("输入的成绩有误!"); 10 if(a>=0&&a<60) 11 System.out.println("对不起,您考试没有及格!"); 12 if(a>=60&&a<=100) 13 System.out.println("恭喜你,通过考试!"); 14 } 15 }
输出结果为:
7、括号运算符
除了前面所述的内容外,括号()也是Java的运算符,从读小学就学过,括号里面的要先计算,在编程里也一样,程序运行时,括号里的表达式先计算。
总结为,括号运算符()是用来处理表达式的优先级的。
二、运算符的优先级
各个运算符的优先级的排列,数字越小的表示优先级越高。动手编写个例子吧:
1 /*这是一个新的JAVA文档,请修改类名使用*/ 2 3 public class TestJava3_20 4 { 5 public static void main(String[] args) 6 { 7 int a=60,b=2,c=0; 8 c=3+a/b*2; 9 System.out.println("结果为:"+c); 10 } 11 }
从表中可以知道,乘与除等级相同,从左到右的结合方法计算,上面代码中第8 行表达式为c=3+(a/b)*2;
输出结果为:
三、表达式
普通的表达式是由常量、变量或是其他操作数与运算符所组合而成的语句。在Java中还有一些相当简洁的写法,是将算术运算符和赋值运算符结合成为新的运算符,下表中列出了这些运算符。
下面的几个表达式,皆是简洁的写法:
1 a++ // 相当于 a = a + 1 2 a-=5 // 相当于 a = a – 5 3 b%=c // 相当于 b = b % c 4 a/=b-- // 相当于计算 a = a / b 之后,再计算b--
大学可能觉得这种独特的写法虽然看起来有些怪异,但是它却可以减少程序的行数,提高运行的速度哦!通过下面的范例大家可以更加直观的学习了解使用方法:
四、表达式的类型转换
Java是一个很有弹性的程序设计语言,只要坚持“以不流失数据为前提”的大原则,即可做不同的类型转换,使不同类型的数据、表达式都能继续存储。依照大原则,当Java发现程序的表达式中有类型不相符的情况时,会依据下列的规则来处理类型的转换。
1、占用字节较少的类型转换成占用字节较多的类型。
2、字符类型会转换成int类型。
3、int类型会转换成float类型。
4、表达式中若某个操作数的类型为double,则另一个操作数字也会转换成double类型。
5、布尔类型不能转换成其它类型。