Java教程
Java标识符与关键字
Java变量
Java数据类型
Java运算符
Java控制语句
Java方法
Java面向对象
Java对象的创建和使用
Java封装
Java中static和this
Java继承
Java方法覆盖和多态
Java super
Java基础练习题

Java算术运算符

Java算术运算符包括:+(两个数字求和)、-(两个数字相减)、*(两个数字乘积)、/(两个数字相除)、%(两个数字取模或者求余)、++(单目运算符,对数字自加1)、--(单目运算符,对数字自减1)。对于初学者来说,可能%、++、--比较生疏一些,我们重点来学习一下,请看以下代码:

public class ArithmeticOperatorTest01 {
	public static void main(String[] args) {
		int a = 10;
		int b = 3;
		System.out.println(a + b); //13
		System.out.println(a - b); //7
		System.out.println(a * b); //30
		/*
		 * 在java语言中10除以3结果不是3.3333..
		 * 因为java中有一个语法规则:int类型和int类型
		 * 做运算,最终的结果还是int类型,所以10除以3
		 * 的结果就是3,这个过程会取整数位。
		 */
		System.out.println(a / b); //3
		/*
		 * 10对3求余数,3乘3得9,余1。
		 */
		System.out.println(a % b); //1
		/*
		 * ++和--都是单目运算符,++负责自加1,--负责自减1
		 * 以下程序重点研究++运算符,--运算符可以依照++运算
		 * 符进行类推。
		 */
		int i = 10;
		i++;
		System.out.println("i = " + i); //11
		int j = 10;
		++j;
		System.out.println("j = " + j); //11
		/*
		 * 根据以上的程序可以得出结论:++可以出现在变量前,也
		 * 可以出现在变量后,无论是变量前还是变量后,只要执行完
		 * ++,最终的结果都会让变量自加1。那么++出现在变量前
		 * 和变量后到底有什么区别呢?请看以下程序
		 */
		int k = 10;
		int m = k++;
		/*
		 * 根据以上结论,++无论是出现在变量前还是变量后,只要++执行
		 * 变量一定会自加1,那么k变量一定会自加1,所以以下输出k=11
		 */
		System.out.println("k = " + k); //11
		/*
		 * 以上int m = k++;代码中++和=两个运算符同时存在,
		 * 那么此时这两个运算符哪个优先级高呢?java语法中是这样
		 * 规定的,当++运算符出现在变量后,会先做赋值运算,再自
		 * 加1,所以最后m = 10
		 */
		System.out.println("m = " + m); //10
		int x = 10;
		int y = ++x;
		//上行代码执行结束后,我们可以确定x变量一定自加1了,所以x=11
		System.out.println("x = " + x); //11
		/*
		 * java语法中又有这样的规定,++出现在变量前,会先进行自加1
		 * 的操作,然后再做赋值运算,所以y = 11
		 */
		System.out.println("y = " + y); //11
	}
}

运行结果如下图所示:

图5-1:运行结果

通过以上代码的学习,我们得知,第一:两个int类型数据进行数学运算之后的结果一定是int类型;第二:++或--可以出现在变量前也可以是变量后;第三:++无论出现在变量前还是变量后,只要执行了++,那么变量必然会自加1;第四:++出现在变量后会先进行赋值运算,再自加1;第五:++出现在变量前会先自加1,再进行赋值运算。那么,大家思考一下以下代码的执行结果是什么?

int c = 100;
System.out.println(c++);
int d = 100;
System.out.println(++d);