0

J'ai un peu de mal à faire fonctionner quelques parties de mon code correctement. Je suis encore un peu nouveau sur java et je pourrais vous indiquer quelques directions et indices sur les erreurs que j'ai commises.Commutateurs JAVA, si then else et booléens avec une chaîne

L'erreur provient des instructions if. J'ai l'impression de savoir pourquoi ils s'égarent parce que le || sont indéfinis mais je ne suis pas sûr de savoir comment le réparer. Ce que j'essaie de faire c'est de prendre les entrées soit L, R, F, B (gauche, droite, avant et arrière). minuscule l'entrée et soit accepter l'un ou l'autre en utilisant booléen "ou".

import java.util.Scanner; 

ChooseYourAdventure public class {

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; 
} 

}

Répondre

0

Toutes vos déclarations if sont fausses. Lorsque vous utilisez || ou &&, vous devez spécifier la variable way de chaque côté du ||:

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