在这段代码中有一个编译时错误。
"Example.java:17:错误:变量y可能没有被初始化"。
谁能解释一下这个错误的原因以及如何修复它?
import java.util.*;
class Example{
public static void main (String args[]){
Scanner input=new Scanner(System.in);
System.out.println("Input an integer : ");
int num=input.nextInt();
int y;
if(num>100){
y=200;
}
if(num<100){
y=200;
}
if(num==100){
y=200;
}
System.out.println(y);
}
}
访问变量之前必须初始化。
静态变量和实例变量是隐式初始化的,即使您在声明它们时没有提供值。但是对于局部变量,情况并非如此,在使用它们之前,必须显式地分配它们。
您没有使用else语句,而且编译人员也不清楚您已经涵盖了所有可能的情况。
在这段代码中有一个编译时错误。 "Example.java:17:错误:变量y可能没有被初始化"。 谁能解释一下这个错误的原因以及如何修复它?
使用Brian Goetz的文章:https://www.infoq.com/articles/data-oriented-programming-java/ 使用,我得到编译错误:。 我可以添加一个默认的case语句,程序就可以运行了。然而,我认为对于密封的记录,给定的switch case将是详尽无遗的,编译器应该认识到默认情况是不必要的。
以下代码不能用javac 1.8.0_144和ECJ编译: > 未声明为最终。 在赋值表达式(§15.26)中,它从不作为左手边出现。(请注意,包含 初始值设定项的局部变量声明符不是赋值表达式。) 它从不作为前缀或后缀递增或递减运算符的操作数出现(§15.14,§15.15)。 它从不作为前缀或后缀递增或递减运算符的操作数出现。 方法、构造函数、λ或异常参数(§8.4.1,§8.8.1,§9.4,
我正在准备JavaOCA认证,遇到了一个类似的问题,如下所示: 按照Java,实例和静态变量被赋予默认值。令人惊讶的是,我的控制台上显示的错误是: 为什么没有在上面分配默认值?
赋值语句在 Lua 被强化了,它可以同时给多个变量赋值。 例如: a,b,c,d=1,2,3,4 甚至是: a,b=b,a --多么方便的交换变量功能啊 在默认情况下,变量总是认为是全局的。假如你要定义局部变量,则在第一次赋值的时候,需要用 local 说明。比如: local a,b,c = 1,2,3 -- a,b,c 都是局部变量