问下面程序的输出结果
public class \\此部分省略
public void main(String[] args){
int i = 0;
i = i++;
System.out.println(i); } 以下程序错误的是()
1. short s = 1; s = s + 1; 2. short s = 1; s += 1; 知道的请写出详细原因, 里面的s=s+1和s+=1有什么区别? 谢谢
public class \\此部分省略
public void main(String[] args){
int i = 0;
i = i++;
System.out.println(i); } 以下程序错误的是()
1. short s = 1; s = s + 1; 2. short s = 1; s += 1; 知道的请写出详细原因, 里面的s=s+1和s+=1有什么区别? 谢谢
1.0
2
s+=1 等价于 s=(short)s+1内涵一个强制类型转换
public static void main
1.
输出结果是0 ,i++是先调用,后加1。
2.
2 s+=1 等价于 s=(short)s+1内涵一个强制类型转换。
i=i++; 意味着 int temp = i++; ----> temp = 1; ----> i = 2; ----> i = temp; ----> i = 1;
2. 2
算术运算符运算时有自动提升(如short,byte,char,int型数据运算要提升成int型运算结果也是int),+=是扩展运算符结果是运算符左边类型。
2、1错误。s+1结果是int不可以直接在赋值给short了,s+=1 -> s= (short)s+1;
另:
......
int i = 0;
i = i++;
i = i++;//注:不论下面还有多少个i = i++;最后输出的i=0!
System.out.println(i);
2. 1错误,解释: s+=1 等价于 s=(short)s+1内涵一个强制类型转换。
另外与你问题无关的,第二行注释符号错了
还有少个static,编程还是细心点儿好