Переключатели JAVA, if then else и логические значения со строкой

У меня возникли проблемы с правильной работой некоторых частей моего кода. Я все еще немного новичок в java и могу указать направление и подсказки, где я ошибся.

Ошибка возникает из-за операторов if. Я чувствую, что знаю, почему они ошибаются, потому что || не определены, но я не уверен, как это исправить. То, что я пытаюсь заставить его сделать, это взять входные данные L, R, F, B (влево, вправо, вперед и назад). вводите строчные буквы и либо принимайте одно, либо другое, используя логическое «или».

import java.util.Scanner;

открытый класс ChooseYourAdventure {

public static void main(String[]args) {
    Scanner input = new Scanner(System.in);             
    System.out.print("Choose a diection: ");
    String direction = input.nextLine().toLowerCase();
    System.out.printf(" %s and %s/n",getDirection (way),getYourChoice (found));

}

public static String getYourChoice (String found) {
    String result = "Unknown";
    switch (found)
    {
    case "l":
        result = " now we all know you can turn left unlike Zoolander";
        break;

    case "left":
        result = " now we all know you can turn left unlike Zoolander";
        break;

    case "r":
        result = " you fall down a hole never to be seen again... sad.";
        break;  

    case "right":
        result = " you fall down a hole never to be seen again... sad.";
        break;      

    case "f":
        result = " YOU ARE THE KWISATZ HADERACH!!";
        break;  

    case "forward":
        result = " YOU ARE THE KWISATZ HADERACH!!";
        break;

    case "b":
        result = " you are a scaredy cat but, you live to fight or runaway another day";
        break;

    case "back":
        result = " you are a scaredy cat but, you live to fight or runaway another day";
        break;
    }
    return result;
}

public static String getDirection(String way) {
    String result;
    if (way == "l" || "left") {
        System.out.print("Your character moves left");
    }

    else if (way == "r" || "right") {
        System.out.println("You character moves right");
    }

    else if (way == "f" || "forward") {
        System.out.println("Your character moves forward");
    }

    else if (way == "b" || "back") {
        System.out.println("Your character moves forward");
    }

    else {
        System.out.println(" You cant go that way ");
    }

    return result;
}

}


person Daryl Johnson    schedule 15.10.2017    source источник


Ответы (1)


Все ваши if заявления неверны. При использовании || или && необходимо указать переменную way с каждой стороны ||:

if (way == "l" || way == "left") {
    System.out.print("Your character moves left");
}
person Libby    schedule 15.10.2017