java - 编译器看不到的分支

标签 java if-statement

这是 Java 语言的代码片段:

 public void name(){
int value = 9;
 int o;
if(value > 9)
 o = 5;

if(value <= 9)
o = 8;

System.out.println(o);
}

考虑到值的最后一个选项,为什么编译器看不到第二个 if 语句? 它不会编译。 最好的问候

最佳答案

除非您另有说明,否则编译器必须将value 视为可变的。声明它 final fixes the problem :

public void name(){
    final int value = 9;
    int o;
    if(value > 9) o = 5;
    if(value <= 9) o = 8;
    System.out.println(o);
}

关于java - 编译器看不到的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936542/

相关文章:

java - 搜索文本中的字符串模式

java - 字符串索引超出范围异常 : String index out of range: 0

C# 执行速度 : equal (==) vs not equal (! =)

c - 标准和决策问题

java - 使用 Apache CXF 对 SOAP 消息进行签名和加密

java - 如何使用控制反转在java中创建即插即用代码?

javascript - 如果今天 = date_in_cell(或今天的迭代 + X) - Google Apps/Javascript

javascript - 长 JavaScript if else 语句

java - 缺少返回语句、循环

java - java中的 "extends"和 "implements"在性能和内存等方面有什么区别