2017-10-26 10 views
0

부울 연산자와 함께 작동하는 프로그램을 코딩해야합니다. 이 프로그램이 제일 먼저해야 할 일은 사용자에게 "command :"명령을 통해 운영자를 물어 보는 것입니다. 사용자는 "& &", "||", "!"만 입력 할 수 있습니다. 및 "종료". 종료하면 프로그램이 종료됩니다. 그 다음 일은 부울 변수를 사용자에게 물어 보는 것입니다. 그러나 여기에 내 문제가 있습니다 : 프로그램은 "true"또는 "false"를 입력해도 완벽하게 작동하지만, 사용자가 말할 수있는 작업은 사용자 만 사용할 수 있습니다. "f"를 "t"로 입력하십시오. 그래서 여기 내 질문 : "t"를 "true"및 "f"를 "false"로 이해하도록 프로그램을 만들 수 있습니까? (그런데 사용자가 "!"를 입력하면 프로그램은 첫 번째 매개 변수)사용자 입력 "t"를 "true"로, "f"를 "false"(부울)로 이해하는 Java 프로그램을 만들려면 어떻게해야합니까?

public static void main(String[] args) { 

Scanner eingabe = new Scanner(System.in); 
    System.out.println("Command: "); 
    String command = eingabe.nextLine(); 

    if(command.equals("quit")) { 
     System.exit(0); 

    } 
    System.out.println("Parameter 1:"); 
    boolean parameter1=eingabe.nextBoolean(); 
    if(command.equals("!")) { 
     System.out.println(!parameter1); 
     System.exit(0); 
    } 
    System.out.println("Parameter 2:"); 
    boolean parameter2=eingabe.nextBoolean(); 
    if(command.equals("&&")) { 
     System.out.println(parameter1&&parameter2); 
    }else if(command.equals("||")) { 
     System.out.println(parameter1||parameter2); 
    } 
eingabe.close(); 
    } 
} 
+5

명령을 수행하는 것처럼 문자열을 물어보고 "t"또는 "f"와 같은지 확인하십시오. –

답변

0

가장 쉬운 방법은 약간의 방법을 쓸 것, 뭔가 같은 :

boolean customParseBoolean(String input) { 
    if ("t".equals(input)) { 
    return true; 
    } else if ("f".equals(input)) { 
    return false; 
    } 
    // You don't have to throw an exception on invalid input; just an example. 
    throw new IllegalArgumentException("Invalid input: " + input); 
} 

다음과 같은이 뭔가 호출 :

boolean parameter1 = customParseBoolean(eingabe.nextLin()); 
-1

if() 조건에서 사용자 입력을 항상 교차 확인할 수 있습니다. 사용자가 boolean을 true로 설정하면 True를, 그 반대의 경우에는 기본적으로 false로 부울 값을 만듭니다.

또는 다른 U 사용할 수있는 스위치 문

0

당신이 그것을 할 어떤 방법으로 문제가되지 않지만, 아래에 예를 들어 작동합니다. 입력이 잘못된 경우 그것은 단지의 경우에는 적용되지 않습니다

String parameterString1 = eingabe.next(); 
boolean parameter1 = !command.equals("f"); 

String parameterString2 = eingabe.next(); 
boolean parameter2 = command.equals("t");