Я пишу программу для школы, которая выступает в качестве кассового аппарата. Я прошу вклад в цены на предметы и воспроизводить их в постоянный ArrayList до тех пор, пока пользователь не введет -1 или 0. 0 для повторного входа в предыдущую цену в случае ошибки и -1 не завершит цикл. < /P>
Я получаю < /p>
java. границы для длины 0 < /p>
< /blockquote>
Ошибка, когда я пытаюсь запустить свой код.
Я должен включить метод с именем removelastentry () < /code>, который удалит последнюю цену, введенную в массив, на 0, введенный пользователем. Как я могу гарантировать, что массив заполнен, и я действительно удаляю последнюю запись? Сам метод настроен на удаление ArrayList.size ()-1, чтобы он удалял последнюю запись. Я попробовал это с -2 и 0, и у него все еще не хватает границ. Указатель вышел из границ по элементам - 1 длина
Я уверен, что ошибаюсь новичком, но я не могу ее найти, и она сводит меня с ума! /> at java.base /jdk.internal.util.preconditions.outofbounds (preconditions.java:64)
at java.base /jdk.internal.util.preconditions.outofboundscheckindex (preconditions.java:70) AT java.base /jdk.internal.util.preconditions.checkindex (preconditions.java:248)
at java.base /java.util.objects.checkindex (Objects.java:372)
at java.base /java.util.ray.greav.jraylist.jraylist.jraylist.jraylist.jraylist.jraylist.jraylist.jj at c_m_ideaproject.main (c_m_ideaproject.java:76) < /p>
< /blockquote>
// declare our array list which will hold our prices!
ArrayList prices = new ArrayList();
// declaring variables to terminate loop, count prices, total prices, and current entry for conditions
int counter = 0;
double entry = 0;
double total = 0;
// our loop to continuously add prices to the array list from input
while (entry != -1) {
System.out.println("Enter a price for item #" + (counter+1) + ": ");
entry = myInput.nextDouble();
// if the entry is a price we will add it to prices and continue with the loop
if (entry != 0 && entry != -1) {
prices.add(entry);
total += entry;
counter++;
}
//if the entry is 0 we will revert back to the previous iteration to re-add
else if (entry == 0.0) {
total -= prices.get(counter-1);
removeLastEntry(prices);
counter--;
}
public static void removeLastEntry(ArrayList anArrayList) {
anArrayList.remove(anArrayList.size()-1);
}
Подробнее здесь: https://stackoverflow.com/questions/554 ... or-in-java
Как исправить индекс ArrayList Out за пределы ошибки длины в Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
OpenTeLemetry-CPP тестовый приложение работает, но тот же код в Times Out Out Out
Anonymous » » в форуме C++ - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-