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

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

結果很奇怪

public class HelloWorld{
??? public static void main(String[] args) {
??final char a='f';
??? ?final char b='m';
??System.out.println(a+b);
?}
}

這個運行結果為什么是211??

?

正在回答

2 回答

輸出char型如果中間直接是+,char型數據會被轉換成int型數據。建議中間加個換行,或者分成2行輸出。

如:

public?class?HelloWorld{
????public?static?void?main(String[]?args)?{
??????final?char?a='f';
??????final?char?b='m';
??????System.out.println(a+"\n"+b);
??}
}

或者

public?class?HelloWorld{
????public?static?void?main(String[]?args)?{
??????final?char?a='f';
??????final?char?b='m';
??????System.out.println(a);
??????System.out.println(b);
?}
}


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

qq_XL_14 提問者

非常感謝!
2015-11-09 回復 有任何疑惑可以回復我~
#2

qq_XL_14 提問者

為什么用+就會轉換為整型?
2015-11-09 回復 有任何疑惑可以回復我~

它語言設計本來就是這樣,字符是不能相加的,而字符和整形是可以轉換的,字符的取值范圍是0-65535,如果你把兩個字符相加,那它會先轉換為整形,再相加。

至于怎么來轉換,每個字符都對應一個ASCII值,也就是0-65535范圍內的數。


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

qq_XL_14 提問者

輸出兩個變量的值Java不是用+連接么?在c語言中能用逗號分開,我在這里試了一下不行,然后用+看能不能行,結果就出現211了
2015-11-09 回復 有任何疑惑可以回復我~
#2

Perona 回復 qq_XL_14 提問者

嗯,java沒有占位符的概念。不能用逗號,只能用連接符+,但是輸出char類型就成了加法運算。不用糾結了。知道就好了。
2015-11-09 回復 有任何疑惑可以回復我~
#3

舞有涵意 回復 qq_XL_14 提問者

在java中使用 + 連接兩個字符中間必須使用其他變量或者使用雙引號添加空格符等,不能直接相加,這樣會自動轉換為整形ASCII碼的相加
2015-11-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

結果很奇怪

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

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

幫助反饋 APP下載

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

公眾號

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