System.out.println(x + '\t' + y + '\n');

System.out.println(x + '\t' + y + '\n');

int x=3,y=5;

System.out.println(x + '\t' + y + '\n');

--------------------

为什么最后这个输出值是27呢?求解释

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你可以这样认为:如果一个表达式的开头是以字符串开始的话,他后面的转义字符不管是单引号还是双引号引起来的 都起的是转义字符的作用,例如:System.out.println("haha"+x + '\t' + y + '\n');  和System.out.println("haha"+x + "\t" + y + "\n");输出的结果都是一样的 为:haha3   5(后面还有个换行);但是如果一个表达式的开头不是以字符串开头,就会存在两种情况:1.System.out.println(x + '\t' + y + '\n'); 转义字符是单引号引起来的情况,那么里面的转义字符就会被换算成对应的ASCII值带入公式进行计算,所以结果就是 3+9+5+10=27;2. System.out.println(x + "\t" + y + "\n");转义字符是双引号引起来的情况:此时双引号中的转义字符就起到了作用,结果为:3       5(后面还有个换行);此外System.out.println("\thaha\n");这种情况中的\t、\n也是会发挥转义字符的作用,结果为:         haha(后面还有个换行);

我大概就是这样理解的,希望能帮到你;




  • 拉斐爾 提问者 #1
    感谢,现在明白了
    2018-02-13 14:20:15
墓白 2018-02-02 11:51:39

个人观点:因为所有的ASCII码都可以用“\”加数字来表示,则\n的值为10,\t的值为9,由于前面没有双引号提示是字符串,所以后面转换为ASCII码所对应的值,这个时候System.out.println(x+'\t'+y+'\n')中的x+'\t'+y+'\n'则为一个整体,即

public static void main(String[] args) {
	int x=3,y=5,c;
	c = x + '\t' + y + '\n';
	System.out.println(c);
	}

那么其中\n为10,\t为9,x=3,y=5,即

c = 3 + 10 + 5 + 9;

所以输出c的值为27,所以System.out.println(x + '\t' + y + '\n')最后的输出值是27

好帮手慕珊 2018-01-26 09:56:22

因为x是整型数据,与'\t'字符型数据进行加法运算时,会自动把字符型'\t'转换成它的ASCII码值参与计算,而'\t'的ASCII码值是9,'\n'的ASCII码值是10,所以结果就是3+9+5+10=27

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师