java - boolean 返回问题/从放入数组的方法中获取因素

标签 java

一小时前发布了一个较早的问题,并在 4 分钟内得到了回复,这太疯狂了,我再试试我的运气。程序有 5 个方法,我目前正在制作所有这些方法,因此它们不会全部都在这里(由于之前的响应而将其放入),现在的问题是让我的最后一个方法之一实际上除了使打印语句正常工作之外还执行其他操作。该方法并不完整,它不仅需要找到该数字的因子,还必须将它们存储在数组中,将它们相加,然后确定该数字是否完美。未显示的最后一个方法将打印出每个数字的实际数组(如果有)。 “testperfect”是我遇到问题的方法,在 Eclipse 中我收到一条错误消息,指出此方法必须返回 boolean 类型的结果。 。 。任何形式的帮助将不胜感激

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;
     }
}
}
}

最佳答案

所有代码路径都必须返回您的返回类型

想象一下,如果您的 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;
}

关于java - boolean 返回问题/从放入数组的方法中获取因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397779/

相关文章:

java - Tomcat 服务器 "Commons Daemon Service Manager"命令提示符

java - 增强的 for 循环背后发生了什么?

java - 文本未出现在 JavaFX 中

java - 正则表达式 . Java 中的运算符

java - 从客户端到服务器的请求,其中包含来自 <form> 元素和 struts 2 中的 javascript 的数据

java - 的意义? java中的模板参数

java - 使用java优化从数据库下载数据

java - 如何在 Mac OS X 中将 JPL 与 SWI-Prolog 连接

java - 如何动态启用或禁用 Java Swing 程序的任务栏图标

java - 反转链表的右半部分