Java/运算符
< Java
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了很多运算符,主要来说,运算符包括以下几种:
加、减、乘、除和取余运算符
编辑加法、减法与乘法
编辑加(+)、减(-)、乘(*)这三种运算符使用起来和数学的一般用法基本相同(当然得到正确结果的前提是不能超过数据类型的取值范围),先看个例子吧。
public class OperatorBasis
{
public static void main(String args[])
{
int a = 25;
int b = 5;
int sum = a + b;
int difference = a - b;
int product = a * b;
System.out.print(
a + "+" + b + "=" + sum + "\n" +
a + "-" + b + "=" + difference + "\n" +
a + "*" + b + "=" + product + "\n"
);
}
}
使用这个程序,我们成功地计算出了25和5的和、差、积,虽然我们口算的时间比编程序的时间还短不少……然而,我们也可以把a,b赋值为更大一些的数据,比如a=299,b=5449,这样一来计算机的计算优势就体现得更为明显一些。
这个程序还说明了其他的一些问题……
- Java中,“+”运算符还有另外的用法——拼接字符串,而且在使用这个运算符时并不需要手动将数值类型转化为字符串。
- Java中一条语句可以分为多行(但是不能将一个字符串分在多行书写),正因为如此,Java的每条语句结尾必须有分号。
- 既然Java中字符串不可能包含“换行”这个字符,我们需要用一种不同的方式来表达,这就是转义字符,比方说“\n”表示换行,“\"”表示双引号(否则只有一个双引号会被解释为字符串结束),“\\”表示反斜杠自己……
除法和取余运算符
编辑除法(/)运算符在Java中的表现未必和其数学意义完全相同。阅读下面的程序,试着猜测运行结果,然后再试着编译并运行它……
public class DivisionOperator
{
public static void main(String args[])
{
int a, b, quotient;
a = 25;
b = 5;
quotient = a / b;
System.out.println ( a + "/" + b + "=" + quotient );
a = 5;
b = 3;
quotient = a / b;
System.out.println ( a + "/" + b + "=" + quotient );
}
}
如果您之前没有学习过任何计算机语言的话,结果可能会令您惊讶——25除以5等于5,毫无疑问,但5/3=1是怎么回事呢?
在Java中,如果两个运算数都是整数,那么除法运算符的运算结果也是整数,并且会省略一切小数点后的值(或者说是两个整数相除得到的商)。而取余运算符(%),则对应的是两个整数相除得到的余数。
您可能觉得这有些难以理解,下面这个程序(给出除法的商和余数)可以帮助您理解除法运算符和取余运算符的意义……
public class Division
{
public static void main(String args[])
{
int m,n;
m = 99;
n = 10;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = 15;
n = 4;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = 9;
n = 3;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = 0;
n = 10;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = -1;
n = 3;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = -10;
n = 3;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = 10;
n = -3;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
m = -10;
n = -3;
System.out.println ( m + "/" + n + "=" + m/n + "......" + m%n );
}
}
这个程序涵盖了各种特殊的情况……比方说整除的情况下余数为0,被除数为0的情况下商和余数都是0,还有除数/被除数为负数的情况——这显得有些古怪,不过也确实可以正常运行。
注意在这两种运算符中,试图除以0都会造成系统抛出异常。
比较运算符
编辑- == 等于
- != 不等于
- > 大于
- < 小于
- >= 大于或等于
- <= 小于或等于
逻辑运算符
编辑- && 及
- || 或
- !非
位运算符
编辑- >> 右移(带符号)
- << 左移(带符号)
- >>> 补零右移
- &按位与
- |按位或
- ~按位取反
- ^按位异或
各种简便表示法
编辑运算符的优先级
编辑一元运算符>算术运算符>比较运算符>逻辑运算符>位运算符>赋值运算符