import java.util.Scanner;
public class Test{
public static int[] calculateFactors(int n){
int[] array = new int[n];
for(int i = 0; i<=n;i++){
if(n%i==0){
return array[i];
}
}
}
public static void main(String[] args){
System.out.println("Please enter the number you want to find the factors for:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println(calculateFactors(n));
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我会收到错误.我正在尝试编写用户输入数字的代码,程序将返回此数字的所有因子.任何人都可以告诉我为什么当我无法使用相应的i因子返回数组时.
谢谢
Jon*_*eet 12
查看您的代码(为了清晰起见,添加了空格):
public static int[] calculateFactors(int n) {
int[] array = new int[n];
for(int i = 0; i <= n; i++) {
if(n % i == 0) {
return array[i];
}
}
}
Run Code Online (Sandbox Code Playgroud)
有两个问题:
int,但你的方法声明它返回一个int[]n是-1 会发生什么?它永远不会经历循环,所以它永远不会返回.更一般地,编译器将假设(几乎)任何if条件可能是错误的.现在,至于如何解决它-定的方法名,这听起来像你真的不想要返回所有的因素...所以你不应该因为你已经找到了尽快返回第一个.我会在a List<Integer>而不是数组中收集因子.将return语句转换为add调用,然后在循环结束时返回.哦,你可能想用i1而不是0 开始循环...
所有这些都是针对这个特殊问题的.更一般地说,您应该查看编译器提供给您的错误.他们应该为您自己提供所需的所有信息.既然您已经理解了这个问题,那么请再次阅读这些消息并尝试找出阻止您理解它的内容.你能自己解决一下,还是错过了一些重要的概念?
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |