public static void main(String[] args) {
char x = 'x';
int i = 10;
System.out.println(true? x : i);
System.out.println(true? 'x' : 10);
}
答案:
120
x
/*
如果其中有一个是变量,按照自动类型转换规则处理成一致的类型;
如果都是常量,如果一个是char,如果另一个是[0~65535]之间的整数按char处理;
如果一个是char,另一个是其他,按照自动类型转换规则处理成一致的类型;
*/
编写代码实现两个变量值交换,int m = 3, n =5;
答案一:
int temp = m;
m = n;
n = temp;
答案二:
m = m + n;
n = m - n;
m = m - n;
答案三:
m = m ^ n;
n = m ^ n;
m = m ^ n;
short s1 = 1; s1 = s1 + 1;有什么错?
short s1 = 1; s1 += 1;有什么错
答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
switch是否能作用在byte上,是否能作用在long上,是否能作用在String上
答:switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是int、 short、 char 或者 byte。long不能作用于swtich.JDK1.7新加入了String类型。
public static void main(String[] args) {
int a = 3;
int b = 1;
if(a = b){
System.out.println("Equal");
}else{
System.out.println("Not Equal");
}
}
答案:编译不通过:if里面结果只能是true或者false
public static void main(String[] args) {
int i=10;
while(i>0){
i = i +1;
if(i==10){
break;
}
}
System.out.println("i=" + i);
}
答案一:是一个负数,因为i一直累加会超过int的存储范围
答案二:死循环
public static void main(String[] args) {
int n=10;
for (int i = 0; i < n; i--) {
System.out.println("=");
}
}
i<n修改为-i<n