操作符之优先级

优先级
  当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。Java对计算顺序做了特别的规定。其中,最简单的规则就是先乘除后加减。程序员经常会忘记其他优先级规则,所以应该用括号明确规定计算顺序。例如,以下语句中的(1)和(2):

			//:operators/precedence.java
			public class Precedence {
				public static void main(String[] args) {
					int x = 1,y = 2,z = 3;
					int a = x + y -2/2+z;        //(1)
					int b = x+(y-2)/(2+z);      //(2)
					System.out.println("a="+a+"b="+b);
				}
			}/*Output:
			a = 5 b = 1
			*///:~

      这两个语句看起来大体相同,但是从输出就可以看出他们具有截然不同的含义,而这正是使用括号的结果。
请注意,System.out.println()语句中包含”+“操作符。在这种上下文环境中,”+“意味着”字符串连接“,并且如果必要,它还要执行”字符串转换“。当编译器观察到一个String后面紧跟一个”+“,而这个后面又紧跟一个非String类型的元素时,就会尝试着将这个非String类型的元素转换为String。正如在输出中所看到的,它成功地将a和b从int转换为String了。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章