gpt4 book ai didi

java - "Missing Return Statement"- 无法编译

转载 作者:行者123 更新时间:2023-12-01 17:00:43 24 4
gpt4 key购买 nike

以下方法应返回 2 从 0 到 n 的幂。但是,我收到一个错误,指出由于缺少 return 语句,我的代码未编译。注意:这是来自与我的教科书(Building Java Programs、3E、Reges & Stepp)相关的在线网站。我们只需要编写问题陈述中描述的方法即可。

public static int printPowersof2(int n) {
for (int i = 0; i <= n; i++) {
int number = (int) Math.pow(2, i);
return number;
}
}

最佳答案

循环外必须有一个 return 语句,因为如果 n 为负数,循环可能根本不会执行,在这种情况下,该方法将没有返回值。

public static int printPowersof2(int n) {
for (int i = 0; i <= n; i++) {
int number = (int) Math.pow(2, i);
return number;
}
return 0; // it's up to you to decide what to return in this case
}

也就是说,正如评论中提到的,该方法的逻辑存在问题。顾名思义,如果该方法应打印 2 到 n 的所有幂,则当 i 为 0 时,它不应返回。 return 语句应仅出现在循环外部。

public static int printPowersof2(int n) {
int number = 0;
for (int i = 0; i <= n; i++) {
number = (int) Math.pow(2, i);
System.out.println(number);
}
return number;
}

我不确定返回值应该是什么。如果您想返回 2 的所有幂而不只是打印它们,您的方法应该返回一个 List 或一个数组。

public static int[] printPowersof2(int n) {
if (n<0)
return new int[0];
int[] result = new int[n+1];
for (int i = 0; i <= n; i++) {
result[i] = (int) Math.pow(2, i);
}
return result;
}

关于java - "Missing Return Statement"- 无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27813943/

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