2014-02-07 3 views
0
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

Можете ли вы уточнить, пожалуйста? Что вы подразумеваете под «его не работает»?Вы получаете исключение? – Mureinik

+4

'low' не указан тип –

+0

Вы забыли тип своей переменной. Он должен быть «final int low». –

ответ

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

}

+0

@ user3230613 мой брат, можете ли вы объяснить, какое значение вы хотите использовать повторно? .... в вашем комментарии выше (я хочу повторно использовать первое введенное значение, не спрашивая пароль пользователя) – csWael

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 
    } 
+0

Да, я забыл поставить это. Но мой вопрос, как сделать цикл повторно использовать входное значение без запуска класса сканера еще раз? – user3230613

+0

@ user3230613 Он должен сделать это уже ... вы также забыли объявить тип 'height' как' int'. Он будет повторно использовать входное значение, однако он будет перезаписывать 'height' на каждой итерации цикла. – hichris123

+0

Согласовано. Если вы не используете этот код в цикле, который вы не указали, ваш сканер не будет воссоздан. – csmckelvey

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 
} 

EDIT: поставить что-то вроде private double userInput как переменной экземпляра, а затем либо установить его из основного метода или создать метод setUserInput() сеттер, чтобы изменить его значение. Я бы порекомендовал второй, чтобы вы могли разделиться.

EDIT 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; 
} 

этого будет вызываться из вашего основного метода. Параметром для отправки этого метода будет возвращаемое значение из getInput() звонок

EDIT 3: Извините за так много изменений, но я все время задумываюсь о вещах. Вы также захотите создать простой метод getter так же, как только появится определенный способ получить значение. См. Ниже:

private getUserInput() { 
return this.userInput; 
} 
+0

есть ли другой способ? Я не могу этого сделать, потому что я использую много методов. – user3230613

+0

Вам нужно использовать ввод во многих методах? В этом случае я объявляю переменную экземпляра, а затем создаю экземпляр, как только пользователь вводит значение. –

+0

yes, Как объявить переменную экземпляра? – user3230613

Смежные вопросы