я не понимаю что не так с кодом(недавно начал изучать java)
я хочу чтобы код выдавал your car: , затем я ввожу audi, volkswagen или bmw, и в зависимости от ответа я получу какой либо ответ(good car!, better than mine! и т.д), но если я ввожу название машины, к примеру audi, ничего не происходит. скорее всего проблема в сканнере, я просто не знаю как его написать нормально КАК ЭТО СПРАВИТЬ ПОМОГИТЕ ПОЖАЛУЙСТА
import java.util.Scanner;
import java.lang.String;
public class Main
public static void main(String[] args) {
String z = "audi";
String x = "volkswagen";
String y = "bmw";
Scanner scan = new Scanner(System.in);
System.out.println("your car: ");
String car_name = scan.nextLine();
if (car_name == z) {
System.out.println("Good car, man!");
} else if (car_name == x) {
System.out.println("Better than mine!");
}
else if (car_name == y) {
System.out.println("That's good!");
}
}
}
Ответы (2 шт):
Автор решения: Arkady
→ Ссылка
Строки нужно сравнивать используя метод equals.
if (car_name.equals(z)) {
System.out.println("Good car, man!");
} else if (car_name.equals(x)) {
System.out.println("Better than mine!");
} else if (car_name.equals(y)) {
System.out.println("That's good!");
}
Обратите внимание, что x, y, z и car_name — это разные объекты. Нужно сравнивать не их самих, а их содержимое (текст), что и делает метод equals.
Автор решения: Анонимный Паша
→ Ссылка
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("your car: ");
String carName = scan.nextLine();
switch(carName) {
case "volkswagen":
System.out.println("Better than mine!");
break;
case "bmw":
System.out.println("That's good!");
break;
case "audi":
System.out.println("Good car, man!");
break;
}
}
}