Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Динамический массив в JS

Влфдимир Щёкин Ученик (222), на голосовании 2 дня назад
 int currentListSize = 8; 
String[] shoppingList = new String[currentListSize];
int productCount = 0;

Scanner scanner = new Scanner(System.in);

while (true) {
System.out.println("Выберите одну из команд:");
System.out.println("1. Добавить товар в список");
System.out.println("2. Отобразить список");
System.out.println("3. Очистить список");
System.out.println("4. Завершить программу");

int actionNumber = scanner.nextInt();

if (actionNumber == 1) {
if (shoppingList.length == productCount - 1) {
int newListSize = currentListSize * 2;
String[] newShoppingList = new String[newListSize];
for (int i = 0; i <= productCount; i++) {
newShoppingList[i] = shoppingList[i];
}
shoppingList = newShoppingList;
currentListSize = newListSize;
}
System.out.println("Введите название товара:");
String productName = scanner.next();
shoppingList[productCount] = productName;
productCount++;
System.out.println("Товар " + productName + " добавлен в список под номером " + productCount);

Никак не выходит сделать его рабочим
Помогите с данным вопросом, что не так?
Голосование за лучший ответ
S.H.I. Оракул (72672) 1 месяц назад
 import java.util.Scanner; 

public class ShoppingList {
public static void main(String[] args) {
int currentListSize = 8;
String[] shoppingList = new String[currentListSize];
int productCount = 0;

Scanner scanner = new Scanner(System.in);

while (true) {
System.out.println("Выберите одну из команд:");
System.out.println("1. Добавить товар в список");
System.out.println("2. Отобразить список");
System.out.println("3. Очистить список");
System.out.println("4. Завершить программу");

int actionNumber = scanner.nextInt();

if (actionNumber == 1) {
// Если количество товаров равно длине массива, расширяем массив
if (productCount == shoppingList.length) {
int newListSize = currentListSize * 2;
String[] newShoppingList = new String[newListSize];
// Копируем только заполненные элементы (индексы от 0 до productCount-1)
for (int i = 0; i < productCount; i++) {
newShoppingList[i] = shoppingList[i];
}
shoppingList = newShoppingList;
currentListSize = newListSize;
System.out.println("Размер списка увеличен до " + currentListSize);
}
System.out.println("Введите название товара:");
String productName = scanner.next();
shoppingList[productCount] = productName;
productCount++;
System.out.println("Товар \"" + productName + "\" добавлен в список под номером " + productCount);
} else if (actionNumber == 2) {
System.out.println("Список товаров:");
if (productCount == 0) {
System.out.println("Список пуст.");
} else {
for (int i = 0; i < productCount; i++) {
System.out.println((i + 1) + ". " + shoppingList[i]);
}
}
} else if (actionNumber == 3) {
// Очищаем список, создавая новый массив и сбрасывая счётчик
shoppingList = new String[currentListSize];
productCount = 0;
System.out.println("Список очищен.");
} else if (actionNumber == 4) {
System.out.println("Завершение программы.");
break;
} else {
System.out.println("Некорректная команда, попробуйте еще раз.");
}
}

scanner.close();
}
}
Влфдимир ЩёкинУченик (222) 1 месяц назад
Я так полагаю у меня были ошибки в if и в цикле?
Спасибо большое, всё помогло
Молот Шотландцев Высший разум (303001) 1 месяц назад
Гражданин, это не JS. Научитесь сначала отличать Javascript от Java, а потом и лезьте в это дело. Это разные языки
Aac AacoBОракул (53138) 1 месяц назад
ать ити - он собственное имя не может правильно написать, а вы ему тут про языки...
Похожие вопросы