Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我是否正确创建了布尔类?如何修复';表达式的非法开始';和'';我的代码中的预期错误?_Java_Methods_Boolean Expression_Class Method - Fatal编程技术网

Java 我是否正确创建了布尔类?如何修复';表达式的非法开始';和'';我的代码中的预期错误?

Java 我是否正确创建了布尔类?如何修复';表达式的非法开始';和'';我的代码中的预期错误?,java,methods,boolean-expression,class-method,Java,Methods,Boolean Expression,Class Method,我正在尝试编写一个程序,从用户那里获取整数输入并打印出其因子。 我试图通过创建一个类FactorGenerator和方法nextFactor和hasMoreFactors来实现这一点 nextFactor方法必须返回整数,hasMoreFactors必须返回布尔值 对于如何声明一个返回布尔值的方法,我有点困惑。因为,我认为如果我能正确地做到这一点,我的大部分错误可能会消失。请告诉我需要修复什么,因为我花了很多时间试图修复代码和查找布尔方法,但还没有找到任何地方 import java.util.

我正在尝试编写一个程序,从用户那里获取整数输入并打印出其因子。 我试图通过创建一个类FactorGenerator和方法nextFactor和hasMoreFactors来实现这一点

nextFactor方法必须返回整数,hasMoreFactors必须返回布尔值

对于如何声明一个返回布尔值的方法,我有点困惑。因为,我认为如果我能正确地做到这一点,我的大部分错误可能会消失。请告诉我需要修复什么,因为我花了很多时间试图修复代码和查找布尔方法,但还没有找到任何地方

import java.util.Scanner;
import java.lang.Boolean;
public class myProgram 
{

    public static void main(String args[]) 
    {
      Scanner in = new Scanner(System.in);
      System.out.print("Enter an integer: ");
      int num = in.nextInt();
      FactorGenerator myFacGenerator = new FactorGenerator(num);
      while (myFacGenerator.hasMoreFactors())
            System.out.println(myFacGenerator.nextFactor);
            

    
    }

    public int FactorGenerator(int number)
    {
           int number = num1;
           return num1;
            
    }
    
    public int nextFactor(int num1) // method that returns the factors of the input number 
    {
    
    int i;
    System.out.format("Factors of %d\n " + num1);
        
        for (i = 1; i <= num1; i++) 
        {
            
            if (num1 % i == 0) 
            {
                
               return i;
            
                
            }
        }
    }
    
    public Boolean hasMoreFactors(boolean b) // method that is meant to check if there are any more factors left. This method returns boolean 
     {
       Boolean b1 = num1.equals(i);
       
       return b1;
    
     }
}
请尝试以下操作:

    public int nextFactor(int num){
        for(int i = 2; i <= num; i++){
            if(i == num){
                return 1; // returns 1 if its a prime number
            }else (num % i == 0) { 
                return 1; // returns lowest factor
            }
        }
        return 0; // return 0 if all paths fail
    }
    
    public boolean hasMoreFactors(int num){
        return (nextFactor(num) > 1); //if greater than 1(Not a prime), it has more factors
    }

public int nextFactor(int num){
对于(inti=2;i1);//如果大于1(不是素数),则它有更多的因子
}

公共布尔hasMoreFactors(布尔b)
结尾的分号也不应该出现在那里,这个
FactorGenerator
方法看起来像是试图定义另一个类。当然,它不能有两个
返回值
s。更一般地说,我建议您重新阅读您正在阅读的任何书籍/指南/教程。编辑后,
FactorGenerator
将不会编译,因为它应该返回一个
int
,但不会返回任何内容。@Fredrico klez Culloca感谢您查看我的代码。对那些错误感到抱歉。我忘了把它们扔掉。我要再看看我的书。非常感谢。
    public int nextFactor(int num){
        for(int i = 2; i <= num; i++){
            if(i == num){
                return 1; // returns 1 if its a prime number
            }else (num % i == 0) { 
                return 1; // returns lowest factor
            }
        }
        return 0; // return 0 if all paths fail
    }
    
    public boolean hasMoreFactors(int num){
        return (nextFactor(num) > 1); //if greater than 1(Not a prime), it has more factors
    }