public double getInput() {
System.out.print("Percentage of attacks that will be aimed low: ");
Scanner data = new Scanner(System.in);
double low = data.nextDouble();
return(low);
}
public static void main(String[] args) {
for ( int i = 0 ; i < round ; i++) {
xxxx.getInput();
}
我没有包含所有内容,但我希望你明白我的意思。
答案 0 :(得分:3)
您不需要在其前面放置final
,它会指定第一个int
,并且由于它不在for
循环中,因此值永远不会更改,除非您自己更改。但是,您尚未声明low
的类型。所以这样做:
int low = data.nextInt();
从新代码中,您可以尝试:
public static void main(String[] args) {
Scanner data = new Scanner(System.in);
double low = data.nextDouble();
// you have low now
for ( int i = 0 ; i < round ; i++) {
System.out.print("Percentage of attacks that will be aimed low: ");
// do what you want with low
}
答案 1 :(得分:1)
如果您想使用final
,则必须编写类似final int
或final double
的变量类型。
在您的计划中,您应该:
final int low = data.nextInt();
来自您的新代码
我认为你想重用第一个输入的值而不再询问用户输入
这是方法
public static double getInput(int i) {
if(i==0)
{
System.out.print("Percentage of attacks that will be aimed low: ");}
Scanner data = new Scanner(System.in);
double low = data.nextDouble();
return(low);
}
这是主要的
public static void main(String[] args) {
for ( int i = 0 ; i < round ; i++) {
getInput(i); }
}
答案 2 :(得分:1)
在该方法的循环外创建一个局部变量,并将其值设置为getInput()
调用的结果。然后,您可以根据需要多次在循环中重用该值。
喜欢这个
public static void main(String[] args) {
double temp = xxxx.getInput();
for ( int i = 0 ; i < round ; i++) {
//whatever operation you were going to do on the value
}
编辑:将类似private double userInput
的内容作为实例变量,然后从main方法设置它或创建setUserInput()
setter方法来更改其值。我会推荐第二个,这样你就可以分开。
编辑2:
public class Example()
{
private double userInput; //This is the instance variable
public static void main(String[] args)
{
}
}
然后你可以创建另一个这样的方法
private setInput(double inputIn) {
this.userInput = inputIn;
}
这将从您的main方法调用。发送此方法的参数将是getInput()
调用
private getUserInput() {
return this.userInput;
}