gpt4 book ai didi

java - 从 main 方法调用 void 方法,不能在 void 方法内传递参数

转载 作者:行者123 更新时间:2023-12-01 17:58:35 26 4
gpt4 key购买 nike

我的老师要求我们为我的计算机科学课创建一个附加素数程序。我已经创建了所有的 void 方法,并且相信已经弄清楚了所有的数学逻辑。但是,当我尝试将参数传递到主方法中的方法实例时,它给了我一个错误:

it can not find the variable in this case variable 'x'

package additiveprimes;

import java.util.Arrays;
import java.util.Scanner;


/**
*
* @author talarik048
*/
public class AdditivePrimes {

public static void main(String[] args){

AdditivePrimes additivePrime = new AdditivePrimes();
additivePrime.userInput(x);
additivePrime.isPrime(x);
additivePrime.numArray(x);

}

public void userInput(String x){
Scanner sc = new Scanner(System.in);

try{
System.out.println("Please enter a number: ");
x = sc.nextLine();
} catch(NumberFormatException e){
System.out.println("Error, try again: ");
x = sc.nextLine();
}

}

public void isPrime(String x){
this.userInput(x);
boolean prime = true;
int y = Integer.parseInt(x);


for(int i = 0; i < y; i++){

if(y % i == 0){
prime = false;
break;
}

if(prime){
System.out.println("Your number is prime...");
} else {
System.out.println("Your number is not prime...");
}
}

}

public void numArray(String x){
this.userInput(x);
String[] strArray = x.split("\\s+");
boolean prime = true;

int[] numbArray = new int[strArray.length];
for(int j = 0; j < strArray.length; j++){
try{
numbArray[j] = Integer.parseInt(strArray[j]);
} catch(NumberFormatException e){
System.out.println("ERROR");
}


for(int i = 0; i < numbArray.length; i++){
int sum = (Arrays.stream(numbArray).sum());
if(sum % i == 0){
prime = false;
break;
}
if(prime){
System.out.println("Your number is an additive prime...");
} else {
System.out.println("Your number is not an additive prime...");
}
}
}

}

}

最佳答案

我认为您想从 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 设置为字段。

关于java - 从 main 方法调用 void 方法,不能在 void 方法内传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com