gpt4 book ai didi

Java:错误:变量可能尚未初始化

转载 作者:行者123 更新时间:2023-12-02 01:17:15 40 4
gpt4 key购买 nike

我正在学习 Java,但遇到此错误。我知道这个问题已经被问过几次(很多次),但似乎没有一个答案能回答我的问题。代码主体是:

String[] number = {"too small", "one", "two", "three", "four", "too large"};
int i;
if(num<1){
i=0;
}
if(num==1){
i=1;
}
if(num==2){
i=2;
}
if(num==3){
i=3;
}
if(num==4){
i=4;
}
if(num>4){
i=5;
}
return number[i];

其中变量“num”是先前声明、初始化和给定的。我得到的错误是:“变量‘i’可能尚未初始化”并指向最后一行(返回 number[i];)。

问题是,如果我声明“i”并立即分配一个值(int i=0;),则代码运行良好。但是,如果我不分配值,即使在每个“if”之后分配了可能的值,也会收到错误。

例如,我在使用 C 语言时就不会出现此类错误。

谢谢

最佳答案

Java 不会分析 if block 的逻辑来确定您的 if 语句之一将运行并向 i 赋值。它很简单,它可以看到没有 if 语句运行的可能性。在这种情况下,在使用之前不会为 i 分配任何值。

Java不会给局部变量赋予默认值,即使它给类变量和实例变量赋予默认值。 Section 4.12.5 of the JLS涵盖这个:

Every variable in a program must have a value before its value is used:

A local variable (§14.4, §14.14) must be explicitly given a value before it is used, by either initialization (§14.4) or assignment (§15.26)

在声明时为 i 分配某种默认值,以满足编译器的要求。

int i = 0;
// Your if statements are here.
return number[i];

关于Java:错误:变量可能尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57652212/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com