JAVA 17.下面的表达式中正确的是( A )

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:41:29
17.下面的表达式中正确的是( A )
A.String s=〃你好〃;int i=3;s+=i;
B.String s=〃你好〃;int i=3;if(i==s){s+=i};
C.String s=〃你好〃;int i=3;s=i+s;
D.String s=〃你好〃;int i=3;s=i+;

为什么啊?

这道题A和C都是正确的,B和D很明显是错误的,B里面int型和String型是不能直接比较的,D里面i+这是个语法错误,java里面不能这么用,A和C中,当int和String型遇到+操作符的时候,这里面+不再是数学运算的意思,而是连接符,int型会自动转换成String型,这时的+是java中唯一重载的运算符,而s+=i和s=i+s在效果上是一样的,都是连接,但结果不一样,B打印出s应该是“你好3”,C打印出s是“3你好”。

应该是A和C都对,s+=i 跟s=i+s是一样的 加的时候i会自动转化为字符串
B i是int s是String 不能直接比较,D i加后还是int 不能转化为String.

a因为s+=i;就是s=s+i; ‘+’是连接符。
b因为i==s不同类型不能比较。
c因为不同类型不能相加。
d没有那么写的

B.选项(i==s)错误,必须相同类型才能判等。

D.选项s=i+;语法错误。

A.C.选项似乎没有错误。
自己测试一下就知道了。

D项 编译都不能通过咧
小弟试了一下 它报语法错误:标记"+",应为"++"