我的老师要求我们为我的计算机科学课创建一个加性项目。我已经创建了所有的void方法,并且相信所有的数学逻辑都已经找到了。但是,当我尝试在我的main方法中将参数传递给我的方法的实例时,它给出了一个错误说:
在这种情况下变量' x'
找不到变量
FINER: RMI TCP Connection(10)#####: [######: sun.tools.jstatd.RemoteVmImpl[-6dd825ef:15ab396432e:-7fe5, -3475770279103225284]: public abstract int sun.jvmstat.monitor.remote.RemoteVm.getCapacity() throws java.rmi.RemoteException]
答案 0 :(得分:3)
我想你想要从userInput
返回一个值:
public static void main(String[] args){
AdditivePrimes additivePrime = new AdditivePrimes();
String x = additivePrime.userInput();
additivePrime.isPrime(x);
additivePrime.numArray(x);
}
public String userInput(){
Scanner sc = new Scanner(System.in);
String x = null;
try{
System.out.println("Please enter a number: ");
x = sc.nextLine();
} catch(Exception e){// see OH GOD SPIDERS comment
System.out.println("Error, try again: ");
x = sc.nextLine();//this is not a good way for a retry
}
return x;
}
或者,您可以将x
作为字段。
答案 1 :(得分:1)
您的方法接受字符串作为参数,但您没有传递任何参数。您需要在main中初始化x
。
public static void main(String[] args){
AdditivePrimes additivePrime = new AdditivePrimes();
String x= "55";
additivePrime.userInput(x);
additivePrime.isPrime(x);
additivePrime.numArray(x);
}
注意强>
虽然上面的代码修复了您当前的问题。它似乎不是使用这个类的正确方法。您可能应该调用.userInput()
方法并获取userInput,然后将其传递给其他方法。
您可以将整体课程改为
public static void main(String[] args){
AdditivePrimes additivePrime = new AdditivePrimes();
String x = additivePrime.userInput();
additivePrime.isPrime(x);
additivePrime.numArray(x);
}
public String userInput(){
Scanner sc = new Scanner(System.in);
String x = null;
try{
System.out.println("Please enter a number: ");
x = sc.nextLine();
} catch(NumberFormatException e){
System.out.println("Error, try again: ");
x = sc.nextLine();
}
return x;
}
答案 2 :(得分:0)
在使用之前,您没有将x定义为任何内容。尝试定义x。在这种情况下,因为你的参数是字符串,我建议......
String x = new String();