亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 運算符,+ - 下面的代碼中發生了什么以及為什么這樣寫

Java 運算符,+ - 下面的代碼中發生了什么以及為什么這樣寫

揚帆大魚 2022-07-20 15:48:39
在我們的java代碼中,我遇到了一行我不明白為什么total = + - valFromsp; 或 總計 = - + valFromsp; 所以我寫了一個小程序并附在這里。public class Test {    public static void main (String... arg) {        int total =  20;        int valFromsp = 60 ;         total = + - valFromsp;        System.out.println(total);  // prints -60    }}
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

它只是意味著這個:


total = -valFromsp;

這行代碼是一個賦值語句,右側表達式為+ - valFromsp。是什么+ - valFromsp意思?如果我們添加括號,它會變成+(-(valFromsp)).


一元運算符對使它-的操作數進行操作。然后一元運算符對它不做任何操作。valFromsp-60+-60


+和-一元運算符在Java 語言規范的§15.15中指定:


運算符 +、-、++、-、~、! 和強制轉換運算符(第 15.16 節)稱為一元運算符。


UnaryExpression: 

    PreIncrementExpression 

    PreDecrementExpression 

    + UnaryExpression

    - UnaryExpression 

    UnaryExpressionNotPlusMinus

§15.15.3+進一步規定了一元運算符的使用:


一元數字提升 ( §5.6.1 ) 在操作數上執行。一元加表達式的類型是操作數的提升類型。一元加號表達式的結果不是一個變量,而是一個值,即使操作數表達式的結果是一個變量。


但是由于您使用int的是不進行一元數字提升的 s,+所以什么也不做。即使你使用byte, shortor char,+仍然不會做任何事情,因為-一元運算符也做提升。所以真的沒有任何理由同時使用+兩者-。


我建議您將其更改為:


total = -valFromsp;

以免日后混淆。


查看完整回答
反對 回復 2022-07-20
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

讓我從一個簡單的例子開始解釋這個,考慮


total = + valFromsp;

上面的線意味著total = total + valFromsp;


類似于這total = - + valFromsp意味著


total = - (total + valFromsp);

現在您可以再次將其進一步擴展為total = total - (total + valFromsp)


考慮下面給出相同輸出的示例


    int total = 10;

    int val = 50;

    //total = - + val; //this is also equals to the below line

    total = total - (total + val);

    System.out.println(total); //output -50.


查看完整回答
反對 回復 2022-07-20
  • 2 回答
  • 0 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號