Java的运算符/字符串/输入输出

来源:互联网 发布:rpg游戏制作软件 编辑:程序博客网 时间:2024/05/22 11:29

1. 运算符

在Java中,算术运算符+  -  *  /,分别表示加  减  乘  除。特别要说的是除法(/),当操作数都是整数时,结果为整数;当操作数是浮点数时,结果为浮点数。整数的求余用符号“%”,比如:15 / 2 = 7。15.0 / 2 = 7.5。13 % 2 = 1。
特别注意的是:0不能做除数。如果0作除数,系统会提示出错。有的人可能要问了什么是除数?被除数?请看一下:

15 / 2 = 7,读作15除以2,15是被除数,2是除数。
15 / 2 = 7,读作15被2除,15是被除数,2是除数。

1.1自增运算符和自减运算符

自增运算符++,自减运算符--。比如n++,将当前n值加1;n--,将当前n值减1。因为这些运算符都改变了变量的值,因为n必须是一个变量,而不能是一个常量。比如:
n++  //对
3++  //错

实际上,这种运算符有两种形式,运算符在前或者运算符在后,而且结果也不一样。比如:++n,自增运算符在前,则自增之后”++n“是自增之后的结果(n+1),如果是自增运算符在后,则自增之后”++n“还是自增之前的结果(n)。自减运算符同理一样。

int a = 3;int b = 3;int a2 = 2 * a++; //a2 = 6;int b2 = 2 * ++b; //b2 = 8;int c = a;    // c = 4;

1.2关系运算符

在Java中,关系运算符有 &&(与)||(或)==(等于)!=(不等于)>(大于)>=(大于等于)<(小于)<=(小于等于)。
其中特别要说的是&&和||,两者都是采用”短路“方式计算,a && b,如果第一个操作数a的结果能决定整体表达式的结果,就不进行第二个操作数b的计算了,||(或)运算符也是一样的道理。
另外Java也支持三元操作符?:。在很多时候,这个操作符很有用。当条件为真时计算第一个表达式的值,当条件为假时计算第二个表达式的值。表达式:
condition ? expression1 : expression2
常见的用法:
int a=100;int b=50;int c=a>b?a*2:b*2;//因为a>b为true,所以c=a*2;

1.3位运算符

位运算主要是针对整型数值,因为整型可以将数值拆开成各个位。位运算包括&(”与“)、|(”或“)、^(”异或“)、~(”非“)。
这些运算符在位模式下工作。可以理解为在二进制模式下工作(计算)。比如:4转换成二进制是0b0100,5转换成二进制是0b0101
int a = 0b0100 & 0b0101;  //a=0b0100=4;
int b = 0b0100 | 0b0101;  //b=0b0101=5;


另外,&和|也用于计算boolean(布尔)值类型,得到的结果也是boolean类型。这两个运算符与&&和||很相似,只是不按照”短路“的方式计算。它们一定是通过计算两个操作数的值,然后才得到结果。而&&和||有可能”短路“,有可能也计算两个操作数的值。
运算符>>、<<和>>>将对二进制数进行右移、左移和无符号右移,忽略符号位,空位都以0补齐操作。比如:num=10,转换为二进制0b1010

<<      :     左移运算符,num << 1,相当于num乘以2        左移1位之后变成0b0001 0100,即num=20

>>      :     右移运算符,num >> 1,相当于num除以2        右移1位之后变成0b0000 1010,即num=10

>>>    :     无符号右移,忽略符号位,空位都以0补齐      举例:-14>>>2,即将-14无符号右移2位,11111111 11111111 11111111 11110010,空位以0补齐右移两位之后变成00111111 11111111 11111111 11111100,结果为1073741820。

注意:没有<<<操作符号。

1.4数值类型之间的转换

当使用浮点数和整型数进行二元操作时,比如n是浮点数,f是整型,进行n+f运算时,先要将两个数转换成同一种类型,才能进行计算。
如果两个操作数中有一个是double,另外一个操作数也会转换成double。
否则,如果其中一个操作数是float,另外一个操作数也会转换成float。
否则,如果其中一个操作数是long,另外一个操作数也会转换成long。
否则,两个操作数都会转换成int。
有时候,double类型的数,也要转换为int类型,像这种类型的转换,这时候就需要进行强制转换。比如:
double d=100.123;int i=(int)d;  //i=100;

1.5运算符优先级

0 0
原创粉丝点击