今天我一直在研究java的一个基本程序:
class Add
{
public static void main(String args[])
{ int a=20;
int b=20;
int c;
c=a-b;
c=a+b;
System.out.println("c:"+c);
System.out.println("c:"+c);
}
}
我偶然输入或使用变量两次加法和减法,奇怪的是结果输出没有任何错误:
输出:
C:40 C:40
为什么会发生,为什么java编译器没有指出我的错误?
可以看到结果的在线版本here。
提前致谢
答案 0 :(得分:2)
因为没有错误。
int a=20;
int b=20;
int c; // c is now uninitialized
c=a-b; // c is set to 0
c=a+b; // c is now set to 40
System.out.println("c:"+c); // print 40
System.out.println("c:"+c); // print 40
答案 1 :(得分:2)
因为你告诉Java这样做;
int a=20;
int b=20;
final int c=a-b; // <-- make it final, then changing it is a compile error.
final int d=a+b;
System.out.println("c:"+c);
System.out.println("d:"+d);
答案 2 :(得分:2)
对于普通(非final
)java变量,您可以将值赋值给变量n
次。没问题。
出现输出问题,输出是相同的,因为两个输出之间没有任何事情发生
// c value here is 40
System.out.println("c:"+c); //40
// No miracles happening here ..again going to print the same value.
System.out.println("c:"+c);// 40
如需更改,请尝试
c=a-b;
System.out.println("c:"+c);
c=a+b;
System.out.println("c:"+c);
你会看到差异。
答案 3 :(得分:1)
我不确定你的期望。首先将c设置为等于20-20(0),然后丢弃该结果,将c设置为等于20 + 20(40)。这段代码没有错误,减法线就没有意义了。