0

코드가 제대로 작동하는 데 문제가 있습니다. 저는 아직 자바에 익숙하지 않고 잘못된 방향으로 갈 수있는 방향과 단서가 있습니다.자바 스위치, 그렇다면 문자열이있는 부울

오류는 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; 
} 

}

답변

0

귀하의 모든 if 문은 잘못이다.

if (way == "l" || way == "left") { 
    System.out.print("Your character moves left"); 
} 
: || 또는 &&를 사용하는 경우, 당신은 ||의 양쪽에있는 변수 way를 지정해야