我正在尝试编写一种方法,该方法可以找到三个数字中最小的一个。我认为我的代码中的“ else if”语句有问题。它不断告诉我“变量d可能尚未初始化”。但我确实将其初始化。也许我写的“ else if”陈述是错误的。
public class Solution {
public static int min(int a, int b, int c) {
int d;
if ((a <= b) && (b <= c))
d = a;
else if ((a >= b) && (b >= c))
d = c;
return d;
}
public static void main(String[] args) throws Exception {
System.out.println(min(1, 2, 3));
System.out.println(min(-1, -2, -3));
System.out.println(min(3, 5, 3));
System.out.println(min(5, 5, 10));
}
}
答案 0 :(得分:1)
尝试一下
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">MY_API_KEY</string>
发生错误是因为
int d;声明它而不初始化它。
答案 1 :(得分:0)
您需要确保在return语句之前为int d
分配一个值。您的逻辑也是错误的,并且您错过了代码中的else语句。您可以尝试以下代码:
public static int min(int a, int b, int c) {
int d ;
if ((a <= b) && (a <= c))
{
d = a;
}
else if ((a >= b) && (b <= c))
{
d = b;
}
else
{
d=c;
}
return d;
}
答案 2 :(得分:-1)
要么用一个值初始化int d
,和/或包含一个else
语句以分配d
,以使return
语句抛出null
。您应该始终计划将if
和if else
语句评估为false
时的情况。
答案 3 :(得分:-6)
使用int d=0;
使用NULL插入d
记住:使用elseif {}时,您必须以else {}结尾
if(condition){
}else if(condition){
}
else{
}