После компиляции кода не выводит текст на консоль
подскажите в чем моя ошибка? (Код компилируется, но выводит пустую строку на консоль). Хотел бы вывести на консоль товар в зависимости от введённого номера с клавиатуры. Можно ли реализовать данный код через switch case?
public class Demo1 {
public void baskTovar(String ... katal){
System.out.println(" Товары в корзине :");
if ("1".equals(katal)) {
System.out.println("Товар Штаны (чёрного цвета) добавлен в корзину");
} else if ("2".equals(katal)) {
System.out.println("Товар Штаны (желтого цвета) добавлен в корзину");
} else if ("3".equals(katal)) {
System.out.println("Товар Майка (белого цвета) добавлен в корзину");
} else if ("4".equals(katal)) {
System.out.println("Товар Майка (черного цвета) добавлен в корзину");
} else if ("5".equals(katal)) {
System.out.println("Товар Галстук (розового цвета) добавлен в корзину");
} else if ("6".equals(katal)) {
System.out.println("Товар Галстук (чёрного цвета) добавлен в корзину");
} else if ("7".equals(katal)) {
System.out.println("Товар Часы (белого цвета) добавлен в корзину");
} else if ("8".equals(katal)) {
System.out.println("Товар Часы (серого цвета) добавлен в корзину");
}
}
}
public class Demo2 {
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader( new InputStreamReader(System.in));
String katal = null;
Demo1 demo1 = new Demo1();
katal= buf.readLine();
demo1.baskTovar(katal);
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Основная проблема исходного кода в том, что строки-константы "1", "2", .. "8" сравниваются с массивом строк katal.
Следует либо заменить тип аргумента в методе baskTovar на обычную строку, либо проитерировать по массиву.
Также вместо множественных операторов if/else if следовало воспользоваться оператором / выражением switch, предусмотрев при этом печать сообщения, когда ни одно из условий не выполнилось:
public void baskTovar(String katal){
System.out.println(" Товары в корзине :");
String message = switch(katal) {
case "1" -> "Товар Штаны (чёрного цвета) добавлен в корзину";
case "2" -> "Товар Штаны (желтого цвета) добавлен в корзину";
case "3" -> "Товар Майка (белого цвета) добавлен в корзину";
case "4" -> "Товар Майка (чёрного цвета) добавлен в корзину";
case "5" -> "Товар Галстук (розового цвета) добавлен в корзину";
case "6" -> "Товар Галстук (чёрного цвета) добавлен в корзину";
case "7" -> "Товар Часы (белого цвета) добавлен в корзину";
case "8" -> "Товар Часы (серого цвета) добавлен в корзину";
default -> "Неизвестный код: " + katal;
};
System.out.println(message);
}