gpt4 book ai didi

java - 变量 'result' 可能尚未初始化

转载 作者:行者123 更新时间:2023-11-29 06:57:56 25 4
gpt4 key购买 nike

public class MonthName {
public static String month_name(int month) {
String result;

if (month == 1) {
result = "January";
} else if (month == 2) {
result = "February";
} else if (month == 3) {
result = "February";
} else if (month == 4) {
result = "February";
} else if (month == 5) {
result = "February";
} else if (month == 6) {
result = "February";
} else if (month == 7) {
result = "February";
} else if (month == 8) {
result = "February";
} else if (month == 9) {
result = "February";
} else if (month == 10) {
result = "February";
} else if (month == 11) {
result = "February";
} else if (month == 12) {
result = "February";
}

return result;
}


public static void main(String[] args) {
System.out.println("Month 1: " + month_name(1));
System.out.println("Month 2: " + month_name(2));
System.out.println("Month 3: " + month_name(3));
System.out.println("Month 4: " + month_name(4));
System.out.println("Month 5: " + month_name(5));
System.out.println("Month 6: " + month_name(6));
System.out.println("Month 7: " + month_name(7));
System.out.println("Month 8: " + month_name(8));
System.out.println("Month 9: " + month_name(9));
System.out.println("Month 10: " + month_name(10));
System.out.println("Month 11: " + month_name(11));
System.out.println("Month 12: " + month_name(12));
System.out.println("Month 43: " + month_name(43));
}
}

所以我已经在结果中声明了相关字符串的值,但它仍然说我的变量“结果”可能尚未初始化。

我正在尝试实现类似于 this 的输出.任何人都可以帮助我吗?谢谢!

最佳答案

好吧,如果您的变量月份可能为空或<1 或>12,就会发生这种情况。您可以通过简单地删除 if-else 树中的最后一个 if 来解决这个问题,例如:

public class MonthName {
public static String month_name(int month) {
String result = "";

if (month == 1) {
result = "January";
} else if (month == 2) {
result = "February";
} else if (month == 3) {
result = "February";
} else if (month == 4) {
result = "February";
} else if (month == 5) {
result = "February";
} else if (month == 6) {
result = "February";
} else if (month == 7) {
result = "February";
} else if (month == 8) {
result = "February";
} else if (month == 9) {
result = "February";
} else if (month == 10) {
result = "February";
} else if (month == 11) {
result = "February";
} else {
result = "February";
}

return result;
}


public static void main(String[] args) {
System.out.println("Month 1: " + month_name(1));
System.out.println("Month 2: " + month_name(2));
System.out.println("Month 3: " + month_name(3));
System.out.println("Month 4: " + month_name(4));
System.out.println("Month 5: " + month_name(5));
System.out.println("Month 6: " + month_name(6));
System.out.println("Month 7: " + month_name(7));
System.out.println("Month 8: " + month_name(8));
System.out.println("Month 9: " + month_name(9));
System.out.println("Month 10: " + month_name(10));
System.out.println("Month 11: " + month_name(11));
System.out.println("Month 12: " + month_name(12));
System.out.println("Month 43: " + month_name(43));
}
}

这意味着您的变量必须介于 1 和 12 之间,否则您应该抛出异常。但无论如何,我不会一直使用那些 if-else 树。无论如何冗余太多。

这个这个代替:

switch (month) {
case 1: result = "January";
break;
case 2: result = "February";
break;
case 3: result = "March";
break;
case 4: result = "April";
break;
case 5: result = "May";
break;
case 6: result = "June";
break;
case 7: result = "July";
break;
case 8: result = "August";
break;
case 9: result = "September";
break;
case 10: result = "October";
break;
case 11: result = "November";
break;
case 12: result = "December";
break;
default: result = "Invalid month";
break;
}

关于java - 变量 'result' 可能尚未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31101014/

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