為什么最后兩行的結果都是7而不是30和0,順便問一下各種運算符號組合在一起時運算順序是怎么樣的。謝謝!
public class HelloWorld{
? ? public static void main(String[] args) {
? ?int one = 10 ;
? ? ? ? int two = 20 ;
? ? ? ? int three = 0 ;
? ? ? ? ?three=one+two;
? ? ? ? System.out.println("three=one+tow==>"+three);
? ? ? ? ?three+=one;
? ? ? ? System.out.println("three+=one==>"+three);
? ? ? ? ?three-=one;
? ? ? ? System.out.println("three-=one==>"+three);
? ? ? ? ?three*=two/2;
? ? ? ? System.out.println("three*=one==>"+three);
? ? ? ? ?three/=two*2;
? ? ? ? System.out.println("three/=one==>"+three);
? ? ? ? ?three%=one;
? ? ? ? System.out.println("three%=one==>"+three);
? ? ? ??
? ? ? ??
? ? ? ??
? ? ? ??
? ? ? ??
? ??
}
}
2017-08-07
因為他不是根據(jù)你的原始值來計算的,而是根據(jù)你最新賦值來算的。也就是第6行的值300來算的。?three/=two*2; 就是300/=20*2 ?結果等于7.5。因為是int類型所以省去小數(shù)點,結果為7 。運算符的順序后面的題目會講到,別著急
2017-08-08
*的優(yōu)先級高于/=,所以倒數(shù)第二行是300/40,取整數(shù)就是7,最后一行7除以10,余數(shù)為7。
2017-08-07
就是30和0啊