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