如何重用输入值

时间:2014-02-07 22:00:33

标签: java

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();
    }

我没有包含所有内容,但我希望你明白我的意思。

3 个答案:

答案 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 intfinal 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()调用

的返回值 编辑3:很抱歉这么多编辑但是我一直在考虑事情。您还需要创建一个简单的getter方法,以便获得该值的特定方法。见下文:

private getUserInput() {
return this.userInput;
}