Java 布尔返回问题/从放入数组的方法获取因子

Java 布尔返回问题/从放入数组的方法获取因子,java,Java,在一小时前发布了一个关于早期问题的帖子,并且在4分钟内收到了一个疯狂的回复后,我会再次尝试我的运气。程序有5种方法,我目前正在制作所有这些方法,所以它们不会全部出现在这里(由于之前的响应,将其放在这里)。现在的问题是获得我最后的一种方法,它实际上做了一些事情,而不是制作一个打印语句来正确工作。该方法是不完整的,它不仅需要找到所述数字的因子,还需要将它们存储在一个数组中,将它们相加,然后确定该数字是否完美。最后一个未显示的方法将打印每个数字的实际数组(如果有)。“testperfect”是我遇到问

在一小时前发布了一个关于早期问题的帖子,并且在4分钟内收到了一个疯狂的回复后,我会再次尝试我的运气。程序有5种方法,我目前正在制作所有这些方法,所以它们不会全部出现在这里(由于之前的响应,将其放在这里)。现在的问题是获得我最后的一种方法,它实际上做了一些事情,而不是制作一个打印语句来正确工作。该方法是不完整的,它不仅需要找到所述数字的因子,还需要将它们存储在一个数组中,将它们相加,然后确定该数字是否完美。最后一个未显示的方法将打印每个数字的实际数组(如果有)。“testperfect”是我遇到问题的方法,在eclipse中,我得到一个错误,说这个方法必须以布尔类型返回结果。任何形式的帮助都将不胜感激

import java.util.Scanner;

public class tgore_perfect 
{
 private static int count;
 private static int perfect;
 public static void main ( String args [])
 {
    count = getNum ();
    //System.out.print(count);
    boolean check = validateNum();
    //System.out.print(check);
    while (validateNum() == false)
    {
    System.out.print ("Non-positive numbers are not allowed.\n");
    count = getNum();
    }
    if (validateNum() == true)
    {
    for ( int i = 0; i < count; i++ )
    {
        perfect = getPerfect();
        testPerfect();

    }
}
}



public static int getNum () //gets amount of numbers to process
 {
     Scanner input = new Scanner ( System.in );
     int counter;

         System.out.println ("How many numbers would you like to test? ");
         counter = input.nextInt();
     return counter;
 }

 private static boolean validateNum() //checks user input
 { 
 if (count <= 0)
 {
     return false;
 }
 else
 {
     return true;
 }
 }

 public static int getPerfect() //gets number to process
 {
 Scanner input = new Scanner ( System.in);
 perfect = -1;
 System.out.print ("Please enter a possible perfect number: ");
 return perfect = input.nextInt();
 }

 public static boolean testPerfect() //tests the number to see if is perfect
{
     int sum = 0;
     int x = 0;

     for( int i = 1; i < perfect; i++ )
 {
     if((perfect % i ) == 0 )
     {
         x = i;
         sum += x;

     }
     if( x == perfect)
     {
         return true;
     }
     else 
     {
         return false;
     }
}
}
}
import java.util.Scanner;
公共类tgore_perfect
{
私有静态整数计数;
私有静态整数;
公共静态void main(字符串参数[])
{
count=getNum();
//系统输出打印(计数);
布尔检查=validateEnum();
//系统输出打印(检查);
while(validateEnum()==false)
{
System.out.print(“不允许使用非正数。\n”);
count=getNum();
}
如果(validateEnum()==true)
{
for(int i=0;iif(count所有代码路径必须返回您的返回类型

想象一下,如果由于
i
perfect
的值,for循环根本没有执行,那么在这种情况下,函数不会返回任何内容

这是不允许的。

public static boolean testPerfect() //tests the number to see if is perfect
{
    //...code...
    for( int i = 1; i < perfect; i++ )
    {
        //..code..
    }
    return false;
}
public static boolean testPerfect()//测试数字是否完美
{
//…代码。。。
for(int i=1;i
所有代码路径都必须返回您的返回类型

想象一下,如果由于
i
perfect
的值,for循环根本没有执行,那么在这种情况下,函数不会返回任何内容

这是不允许的。

public static boolean testPerfect() //tests the number to see if is perfect
{
    //...code...
    for( int i = 1; i < perfect; i++ )
    {
        //..code..
    }
    return false;
}
public static boolean testPerfect()//测试数字是否完美
{
//…代码。。。
for(int i=1;i
通过testPerfect()方法的所有路径都必须返回一个结果。您可能应该在for循环之后返回一个合适的值?通过testPerfect()的所有路径方法必须返回一个结果。你可能应该在for循环后返回一个合适的值?我犯了一个愚蠢的错误,我想我不确定如何问我想问的问题,而不只是要求有人为我做这项工作,这是不可接受的,但用布尔的工作方式直截了当地说,我不确定如何让它不仅返回到return最后一个对/错数字是完美的,并将所有因子输出到一个数组中……您的帖子确实回答了我思考不周的问题,但我是否应该将其检查为已回答?@user1826373如果它确实解决了所述问题,您可以将其标记为:)我犯了一个愚蠢的错误,我想我不知道如何问我想问的问题,而不只是要求有人为我做这项工作,这是不可接受的,但用布尔人的工作方式直截了当地说,我不知道如何让它不仅返回数字完美的最后一个真/假,还将所有因素输出到n数组…您的帖子确实回答了我思考不周的问题,但我是否应该检查它是否已回答?@user1826373如果它确实解决了所述问题,您可以将其标记为:)