Day7-21.Precedence

当一个表达式中存在多个操作符时,操作符的优先级就决定了各部分的计算顺序。

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了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值