1

以前の問題について 1 時間前に投稿した後、4 分以内に返信がありました。プログラムには5つのメソッドがあり、現在それらすべてを作成しているため、すべてがここにあるわけではありません(以前の応答のためにこれを入れます)問題は、printステートメントを正しく機能させる以外のことを実際に行う最後のメソッドの1つを取得しています. メソッドは完全ではありません。その数の因数を見つけるだけでなく、それらを配列に格納し、それらを合計して、数が完全かどうかを判断する必要があります。表示されていない最後のメソッドは、各数値に実際の配列がある場合はそれを出力します。「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;
     }
}
}
}
4

1 に答える 1

1

すべてのコードパスは戻り値の型を返す必要があります

andの値が原因でfor ループがまったく実行されなかった場合を想像してみてください。その場合、関数は何も返しません。iperfect

それは許可されていません。

public static boolean testPerfect() //tests the number to see if is perfect
{
    //...code...
    for( int i = 1; i < perfect; i++ )
    {
        //..code..
    }
    return false;
}
于 2012-11-15T12:49:45.767 に答える