我不断从编译器中收到错误,我无法弄清楚我在做什么错。
我已经尝试过How to populate a constructor with user input in Java?的解决方案
但是我可能会错误地实现它,因为它似乎不起作用。
import java.util.ArrayList;
import java.util.Scanner;
public class primeNumbers {
private int numberCheck;
public primeNumbers(int numberCheck){
this.numberCheck = numberCheck;
ArrayList<Integer> primeNumbersResult = new ArrayList<Integer>();
for (int i = 1; i <= numberCheck; i++) {
if ((i % 2 != 0) && (i % 3 != 0) && (i % 5 != 0) && (i % 7 != 0)) {
primeNumbersResult.add(i);
} else if ((i == 1) || (i == 2) || (i == 3) || (i == 5) || (i == 7)) {
primeNumbersResult.add(i);
}
/* Continue to next i */
}
System.out.println("Prime numbers up to " + numberCheck + " are: " + primeNumbersResult);
System.out.println("Amount of prime numbers up to " + numberCheck + " is: " + primeNumbersResult.size());
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
int inputNumber = scanner.nextInt();
inputNumber = scanner.nextInt();
scanner.nextInt();
primeNumbers batch1 = new primeNumbers(inputNumber);
}
}
请继续从编译器获取此输出和错误:
$javac primeNumbers.java
$java -Xmx128M -Xms16M primeNumbers
Enter a number: Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at primeNumbers.main(primeNumbers.java:31)
答案 0 :(得分:0)
您的代码还存在命名冲突,例如“类名起始字母必须大写”。在构造函数中初始化输入后,将质数业务逻辑包装在模块化方法中。
答案 1 :(得分:-1)
好的。我重写了没有方法或构造函数的整个内容。我找不到任何有关如何将用户输入与方法或构造函数结合的文档。另外,我写了这个简单的东西:
我的直接问题已经解决,但是结合方法和构造函数与用户输入的问题仍然存在。