2014-06-05 2 views
0

예를 들어 어떤 동물을 선택했는지에 따라 변수를 전환하는 프로그램을 만들려고합니다. 인쇄 명령을 두 번 사용하지 않아도됩니다.if 변수에 따라 스위치 전환

예를 들면. 나는 두 개의 문자열 생성 :

String thingsForDogs = "bone"; 
String thingsForCats = "yarn"; 

을 그리고 그 문자열이 서로 전환 할 것, 사용자가 동물로 선택한 내용에 따라 결과를 인쇄 할 때. 어떻게 코딩할지 모르겠지만 사용자가 Cat을 자신의 동물로 선택한 경우 Dog를 선택한 경우와는 다른 출력을 얻습니다.

System.out.println("What animal do you want to be? Dog or cat?"); 
Scanner kb = new Scanner(System.in); 
char choice = kb.nextLine().charAt(0); 

if(choice == 'c' || choice == 'C') 
     System.out.println("You have " + thingsForCats); 
else if(choice == 'd' || choice == 'D') 
     System.out.println("You have " + thingsForDogs); 

을하지만 난 여전히 내가 인쇄 명령을 반복하지 않고, 그것을 할 수있는 방법을 모른다 :

은 내가 이런 식으로 뭔가를 할 수 알고있다. 하나의 인쇄 명령으로 모든 것을 인쇄하려고하지만, 인쇄되는 변수는 사용자가 동물로 선택한 것에 따라 전환됩니다.

+0

- 코드에서 몇 가지 실수가 있습니다. nextLine은 nextLine()이어야합니다. IF - ELSE 문에 thingsForCats가 두 번 나열되어 있습니다. –

+0

귀하의 질문이 정확히 무엇인지 모르겠습니다. 게시 한 코드가 작동합니다 ('kb.nextLine'은'kb.nextLine()'이어야합니다). –

+0

그 점에 대해 미안 하구요, 분명히 했어야했는데, 나는 그 실수를'nextLine()'으로 수정했습니다. 인쇄 명령을 반복하지 않아도된다는 의미였습니다. 하나의 인쇄 명령으로 모두. – Tristan

답변

1

코드에 아무런 문제가 없습니다.

당신은 SWICH는 하시다을 변경할 수 있습니다

System.out.print("You have "); 
switch(choice){ 

    case "c": 
    case "C": 
     System.out.println(thingsForCats); 
     break; 
    case "d": 
    case "D": 
     System.out.println(thingsForDogs); 
     break; 
    default: 
     // some errorhandling or Stuff 
} 
1

당신은 데이터를 저장하는 HashMap을 사용하고있는 경우 문 모두 함께 피할 수 있습니다.

HashMap<char, String> map = new HashMap(); 
map.add('c', "yarn"); 
map.add('d', "bone"); 
... 
// convert the input to lower case so you don't have to check both lower 
// and upper cases 
char choice = Character.toLowerCase(kb.nextLine().charAt(0)); 
System.out.println("You have " + map.get(choice)); 
+0

나는 그것을 시도 할 것이다. 저는 Java에 익숙하지 않으므로 HashMaps와 같은 것을 배웠지 만 소문자로 변경하는 것을 알고 있으므로 제대로 사용하는 것을 잊었습니다. – Tristan

0

당신은, 고려

String thingsForPet = ""; 
System.out.println("What animal do you want to be? Dog or cat?"); 
Scanner kb = new Scanner(System.in); 
char choice = kb.nextLine().charAt(0); 

thingsForPet = Character.toLowerCase(choice) == 'c' ? "yarn" : "bone"; 
System.out.println("You have " + thingsForPet); 

을 인쇄 한 줄 당신의 comment 당신이로 지난 2 개 라인을 변경할 수 있습니다 참고로

if(choice == 'c' || choice == 'C') { 
    thingsForPet = "yarn"; 
} 
else { 
    thingsForPet = "bone"; 
} 
System.out.println("You have " + thingsForPet); 
관련 문제