作者tkcn (小安)
看板java
标题Re: [问题] + 的问题
时间Thu Mar 9 23:49:16 2006
※ 引述《seekyou (galagala~N )》之铭言:
我想你可能有些误会了
所以我重新写个例子提供你参考
int a = 5;
System.out.print("a = " + a);
这样执行结果会是: a = 5
书本上说 + 是用来连接印出的资料,
但其实应该说的更精确些。
System.out.print() 所能接受的参数是 "一个" String(字串),
(当然,有可能是其他参数,但是这里先不提)
而 "a = " + a 的前半段 "a = " 是一个 String,
後半段 a 却是一个 int,
经由 + 这个运算子,会形成一个新的 String,也就是 "a = 5"。
现在看下一个例子
int a = 5;
System.out.print("2*a = " + a + a);
我期望程式要印出 2*a = 10 ,
但是实际执行的结果却是 2*a = 55 ,
哪里出了问题呢?
原来是在 compile 时,"2*a = " + a 会先被处理,
也就是形成新的 String: "2*a = 5",
於是新的式子变成 "2*a = 5" + 5
所以结果自然就变成了 2*a = 55 。
所以在这种情况下,如果你希望 a+a 能够先被处理,就必须加上括号。
"2*a = " + (a + a)
至於你程式所出现的错误讯息,
只是你的 括号 或着 引号 没有成对,导致 compiler 不知道怎麽处理罢了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.131.69.23