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

為了賬號安全,請及時綁定郵箱和手機立即綁定

強制類型轉換

public static void main(String[] args){ ? ? ? ?

????? short a = 2; ? ? ? ?

???? ?short b = 3; ? ? ? ?

???????short c = a+b;//這句為什么顯示的是錯誤語句??? }

正在回答

3 回答

public static void main(String[] args){ ? ? ? ?

????? short a = 2; ? ? ? ?

???? ?short b = 3; ? ? ? ?

???????short c = a+b;//此句報錯—— 錯誤: 不兼容的類型: 從int轉換到short可能會有損失

?????????????????????????????/**報錯原因:a,b雖已被賦值為short類型(16位),但是(a+b)的計算結果并沒有被賦值為 short類型。注意:+的優先級高于=。所以先算出(a+b)的值為整數5(它會先被Java自動隱式轉換為int類型32位),此時再將5賦值給c(short類型16位),Java就不能自動隱式轉換了,想要轉換的話得用強制縮小轉換,即short c =(short)(a+b);

????*/
???????????????? }

正確的代碼如下:

public class Testis{
?public static void main(String[] args){
??short a=2;
??short b=3;
?/*
?*(a+b)的計算結果會被java自動隱式轉換成int類型
?*必須采用強制縮小轉換才能將計算結果賦值給short類型的c
?*/
??short c=(short)(a+b);
??System.out.println(c);
?}
}

希望你可以采納我的答案哦^-^



0 回復 有任何疑惑可以回復我~
#1

慕少4931880 提問者

非常感謝!
2017-01-02 回復 有任何疑惑可以回復我~

兩個short型的數相加會自動轉成int型。精度小于int的會自動轉化成Int

1 回復 有任何疑惑可以回復我~
#1

慕少4931880 提問者

byte 也是被。 所用的儲存空間就是32位被
2016-12-21 回復 有任何疑惑可以回復我~

不兼容的類型:從int轉換到short可能會有損失;前面兩個存在隱式轉換;

0 回復 有任何疑惑可以回復我~
#1

慕少4931880 提問者

a,b的類型已經賦予為short.
2016-12-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167513    人
  • 解答問題       18748    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

強制類型轉換

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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