2016-11-28 5 views
-1

Я новичок в JAVA, и это то, что я должен сделать:
Примите набор меток (из 100). Пользователь должен нажать кнопку «Ввод» после ввода каждой метки и затем добавить знак в массив ArrayList из целых чисел.
Это то, что я до сих пор:Добавление пользователя в Arraylist

int score = Integer.parseInt(marksinput.getText()); 
ArrayList<Integer> marks = new ArrayList(); 
Collections.addAll(marks, score); 
String out = ""; 
String Out = null; 
int[] studentmarks = {score}; 

for (int item : studentmarks) { 
    marksoutput.setText(""+item); 
} 
if (score > 100) { 
    marksoutput.setText("Enter marks\n out of 100"); 
} 

Это только добавляет одну отметку в ArrayList и мне нужно пользователю вводить так много марок, которые он хочет. Я знаю, что мой arraylist ошибается, поэтому он принимает только 1 номер, но я не знаю, как сделать все входные числа в arraylist. У меня есть то, что он принимает число, и если пользователь вводит другой номер, он просто заменяет более старый номер. Я хочу, чтобы он отображал оба числа не только один. Любая помощь приветствуется и спасибо заранее! ☻☻
(Это не дубликат, даже если другие имеют такое же название)

+0

Это внутри петли? код кажется, что отсутствует главный элемент. – vlatkozelka

+0

Вы ищете петлю. – SLaks

+0

Я понятия не имею, как сделать цикл и сделать число ввода пользователем столько раз, сколько он хочет –

ответ

1

В случае, что вы после это программа, которая добавляет любое целое число, набранное пользователем, в ArrayList, что вы должны сделать, это следующее:

Scanner scanner = new Scanner(System.in); 
List<Integer> ints = new ArrayList<Integer>(); 

while(true) 
    ints.add(scanner.nextInt()); 

что эта программа будет делать, это позволить, введенную пользователем, любое число и автоматически помещает его в ArrayList для пользователя. Эти числа могут быть доступны с помощью получить метод из ArrayList, например, так:

ints.get(0); 

Если ноль в приведенном выше примере кода, указывает индекс в ArrayList от того, где вы хотели бы извлечь целое число.

Поскольку этот сайт не существует, чтобы помочь людям писать целые программы, это самые основы ArrayList, которые я вам дал.

ArrayList является подклассом List, поэтому мы можем определить переменную, используя List. Цикл while в приведенном выше примере будет продолжаться вечно, если вы не добавите к нему некоторую логику. Если вы хотите, чтобы это закончилось после выполнения определенного количества раз, я бы рекомендовал использовать цикл for, а не цикл while.

С наилучшими пожеланиями,

+0

Спасибо, но я уже это знаю. То, что я пытаюсь сделать, это получить несколько входов от пользователя и отобразить его в arraylist. У меня есть то, что он принимает число, и если пользователь вводит другой номер, он просто заменяет более старый номер. Я хочу, чтобы он отображал оба числа не только один –

+0

Являются ли метки введенными внутри строки, которая выглядит примерно так: «1, 2, 4, 3, 8, 2»? –

+0

Я отредактировал код в своем вопросе –

0

Так как кажется, что вы действительно новый,

Что вы ищете является for-loop

Из документации Java, он является синтаксис for-loop в Java

for (initialization; termination; increment) { 
    statement(s) 
} 

Initialization: Очевидно, что вы хотите, чтобы начать от 0

Расторжение: вы хотите, чтобы остановить после 100 входов, так что 99 (начиная с нуля)

Increment: Вы хотите, чтобы "считать" один на один, так count++

for(int counter = 0; counter < 100; counter++) { 
    //Ask user for input 
    //read and add to the ArrayList 
} 

Поэтому перед тем, как вы введете for-loop, вам необходимо инициализировать ArrayList и Scanner для чтения:

Scanner sc = new Scanner(System.in); 
ArrayList<Integer> list = new ArrayList(); 

for(int counter=0; counter < 100; counter++) { 
    System.out.println("please enter the " + counter + " number"); 
    int x = sc.nextInt(); 
    list.add(x); 
} 
+0

ArrayList marks = new ArrayList(); для (int score = 0; score <= 100; score ++) { Строка x = (marksinput.getText()); markoutput.setText (x); Все еще не работает –

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