为什么java只在基本程序中添加

时间:2014-08-08 13:41:11

标签: java variables error-handling

今天我一直在研究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

提前致谢

4 个答案:

答案 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)。这段代码没有错误,减法线就没有意义了。