6
在Java开关中声明和初始化变量
我对Java开关有一个疯狂的问题。 int key = 2; switch (key) { case 1: int value = 1; break; case 2: value = 2; System.out.println(value); break; default: break; } 方案1-当key为2时,它成功地将值打印为2。 方案2-当我要在其中注释value = 2时case 2:,saying地说“本地变量值可能尚未初始化”。 问题: 场景1:如果执行流程没有转到case 1:(当时key = 2),那么它如何知道value变量的类型为int? 方案2:如果编译器将value变量的类型识别为int,则它必须已访问。(声明和初始化)中的int value = 1;表达式case 1:。那为什么它会吱吱作响?当我要发表评论value = 2时case 2:,说本地变量值可能没有初始化。