Java中的运算符
我们知道,计算机系统最大的特征就是指令可以通过一种语言传达给机器。而我们的java,就是诸多语言之一,那么在java中,当我们遇到一些数学方向的问题的时候,该怎么向计算机描述呢,此时就得借助java中一系列的运算符了。
- 算数运算符:
顾名思义,算术运算符就是数学中用来进行计算的符号,而在Java中,算数运算符又分为基本四则运算符,复合运算符(增量赋值运算符)和自增,自减运算符。
①:四则运算符:在我们的数学当中,四则运算有“加,减,乘,除”,Java中也一样,只不过衍生了一个“求模”。“加”,“减”,“乘”这三个都比较简单,我们就只看看“除”和“求模”这两个哈!
除法:
public class TestV {
public static void main(String[]args) {
System.out.println(5/2);
System.out.println(5.0/2);
System.out.println((float)5/2);//强制转换5为单精度浮点型
System.out.println((float)(5/2));//强制转换5/2为单精度浮点型,0不能作为除数
}
}
注:这里需要注意的是5\2的结果是2.5,但是5和2都是整型,所以结果默认页打印为整型,后面的0.5也就被自动省略了,需要其中一个或者两个为浮点型,才能打印出正确结果
求模:
求模的意思其实就是一个数除以另一个数,取它们的余数的意思
public class DemoN {
public static void main(String[]args) {
System.out.println(10%3);
System.out.println(-10%3);
System.out.println(10%-3);
System.out.println(-10%-3);
}
}
注:-10/3它的商应该是-3,所以余数也就是-1
② 复合运算符(赋值增量运算符):
①:a += 5—— a= a+5;
②:a -= 5——a = a-5;
③:a /= 5——a = a/5;
④:a =5——a= a5;
下面我们用①为例:
public class DemoN {
public static void main(String[]args) {
int a = 2;
a += 5;
System.out.println(a);
}
}
③ 自增,自减运算符:
a++ :先执行,再自增1
++a:先自增1,再执行
public class TestY {
public static void main(String[]args) {
int a = 10;
int b = ++a;//a先自增1,再赋值给b,此时的b是11
int c = a++;//此时的a是11,先赋值给c再自增1,c是11,a是12
System.out.println(b);
System.out.println(c);
}
}
- 关系运算符:数学中的“大于,小于,等于,不等于,大于等于,小于等于”在Java中表示为:“>”,“<”,"==","!=",“>=”,“<=”。
public class DemoN{
public static void main(String[]args) {
int a = 10;
int b = 20;
System.out.println(a == b);
}
}
注:注意:关系运算符的表达式返回值都是boolean类型,即它们的输出都是true/false
- 逻辑运算符:&&(并且) ||(或) !(非)注:逻辑运算符的返回值都是boolean类型,即输出都是true/false
①逻辑与:表达式1&&表达式2, 只有两个表达式都是真才是真。
public class DemoN{
public static void main(String[]args) {
int a = 10;
int b = 5;
System.out.println(a<1&&b>3);
}
}
②逻辑或:表达式1||表达式2,只要有一个为真就为真
public class DemoN{
public static void main(String[]args) {
int a = 10;
int b = 5;
System.out.println(a<1||b>3);
}
}
③逻辑非:对于逻辑非,只能作用于boolean类型的数据上,如!(a<b)
public class DemoN{
public static void main(String[]args) {
int a = 10;
int b = 5;
System.out.println(!(a<b));
}
}
在逻辑运算符中,对于&&和||,遵循短路求值原则,意思就是对于&&,只要第一个表达式为假,那么第二个就不会被执行了;对于||,只要第一个为真,那么第二个就不会被执行
-
移位运算符:左移(<< ) 右移 ( >> ) 无符号右移(>>>)
比如说一个二进制数:0000 1101
(>>1):也就是往右移动一位,右边本来是1,依次往右移动一位就变成了0000 0110 注:左边补的是符号位,是0就补0,是1就补1
(<<1):也就是往左边移动一位,左边本来是0,依次往左边移动一位就变成了00011010 注:右边补0
(>>>):无符号右移指得就是右移的时候直接在右边补零,不需要看是0还是1 -
三目运算符:表达式1 :?表达式2:表达式3
它的意思就是如果表达式1为真,执行表达式2,否则执行表达式3
public class DemoN{
public static void main(String[]args) {
int a = 10;
int b = 5;
int c = 4;
System.out.println(a>b?a>c:b>c);
}
}
Java中的运算符大致就是这些了,它跟c语言中的差别不大,只是多了一个boolean类型的返回值。有了这些运算符,我们用计算机来解决数学问题也更加简便了起来