답변
는 다음과 같은 코드를 사용할 수 있습니다.
사용하는 대신 여러 또는 java7에서 (||
)
의 switch -case는 이후 스위치는 문자열
작은 지원이 어느 곳의 문서를 찾을 수를 havent 예 :
switch(characterStrings[occupation])
{
case "bar-owner": //some codes for bar-owner
break;
case "barrista":// codes for barrista
break;
}
의견을 보내 주셔서 감사합니다. – user2752347
@ user2752347 작은 예제를주었습니다. 이것을 확인하십시오 – SpringLearner
이것은 완전히 다른 질문에 대한 답입니다. 그는 각각의 경우를 개별적으로 처리하려고하지 않고 모든 것을 함께 처리하기 때문에 if 문은 모두 포함하여 처리합니다. – leigero
그 모든 조건을 확인해야만합니다. 그런 다음 모든 조건을 확인해야합니다. 그러나 스위치 블록은 많은 경우에 대해 검사해야하는 클리너입니다.
또한 문자열을 ==
과 비교한다는 점에 유의하십시오. 하지마. equals()
방법을 사용하십시오. characterStrings[occupation]
이 bar owner
, barrista
또는 shop owner
의 경우
if (Arrays.asList("bar-owner", "barrista", "shop owner").contains(characterStrings[occupation]))
이 확인됩니다
감사를 작성할 필요가 없습니다 ,기도하십시오 : 동등한 것에 대해 더 좋은 것은 무엇입니까? 다시 한번 감사드립니다. – user2752347
==와 equals의 차이점을 찾으십시오. http://stackoverflow.com/a/1643079/2968614 – Aditya
이것을 시도해보고 어떻게되는지보십시오 :'String foo = "foo"; \t \t 문자열 foo2 = "fo"; \t \t foo2 + = "o"; \t \t System.out.println (foo); \t \t System.out.println (foo2); \t \t System.out.println (foo == foo2); ' –
문자열을 비교하는 경우 ==
대신 equals()
메서드를 사용하십시오. switch
감사합니다,기도하십시오 : 동등한 것에 대해 무엇이 더 낫습니까? 다시 한번 감사드립니다. – user2752347
==는 메모리 주소를 비교하는 반면 equals 메서드는 객체를 비교합니다. @ user2752347 –
먼저 ==
을 사용하여 문자열을 비교해서는 안됩니다. 거의 항상 버그입니다. 예를 들어 : 그 정확성에 달려 있기 때문에 버그가 아닙니다
if ("hello" == new String("hello")) {
System.out.println("Something impossible just happened!!");
}
(유일한 경우는 String 객체를 "구금"수동으로 문자열 리터럴 및/또는 비교를 포함 그리고 그렇다하더라도, 그것은 다소 모호한 최적화입니다. 당신은 결코). "정상"문자열을 사용하지 않는 자바 6에서
및 이전 방법보다 더 간결하고 원래 버전과 효율적 둘 다 문자열 equals
비교의 순서를하지 않는다있다.
if (Arrays.asList("bar-owner", "barrista",
"shop owner").contains(characterStrings[occupation])) {
// statements
}
더 간결에로, Arrays.asList
를 사용하지만,도 크게 덜 효율적이다 :
내부적으로 목록 개체의 요소를 반복해야
contains
호출, 테스트를 각 하나는equals
입니다.asList
호출이 할당과 가변 인자 인수에 대해String[]
를 초기화하고, 할당하고 호출에 의해 반환 된List
객체를 초기화하는 것을 포함한다. 자바 7에서
(... 당신은 잠재적으로 "호이스트"이 성능을 향상시킬 수 있지만, 그 간결함에서 detracts) :
switch (characterStrings[occupation]) {
case "bar-owner": case "barrista": case "shop owner":
// statements
break;
}
더 간결하고, 또한보다 효율적으로 될 수있다 . Java 컴파일러가 숨겨진 정적 HashSet<String>
또는 이에 상응하는 코드를 사용하여 조회로 변환 할 수 있습니다. N equals
테스트 시퀀스의 비용이 해시 테이블 조회의 비용보다 큰 "손익 분기점"이 될 것입니다.
그럼에도 불구하고 이것은 매우 유용했습니다. 그럼에도 Stephen C. Thanks again @JQueryLearner – user2752347
- 1. 자바 if 문이 수행되지 않음
- 2. 자바 스크립트 및 jquery에서 IF 문이 잘못되었습니다.
- 3. 간단한 If 문이 자바 스크립트에서 작동하지 않습니다.
- 4. 타임 라인을 따라 반복되는 자바 스크립트 액션
- 5. JavaScript의/및/if 문이
- 6. 왜이 if 문이 실패하지 않습니까?
- 7. 내가 일반적으로 그 라인을 따라 뭔가를,
- 8. IF 문이 버그가 있습니까?
- 9. if 문이 복잡합니까?
- 10. If 문이 작동하지 않습니다.
- 11. mysql if 문이 가능합니까?
- 12. MySQL if 문이 실패합니다.
- 13. If() 문이 호출되지 않음
- 14. if 문이 잘못 실행되었습니다
- 15. if 문이 모호한 경우
- 16. if 문이 작동하지 않습니다.
- 17. If KeyCharaters를 사용하는 문이
- 18. if 문이 jQuery에서
- 19. if 문이 갑자기 닫힙니다.
- 20. if 문이 앵커에 있음
- 21. Ruby에서 if 문이 충돌합니다.
- 22. if 문이 올바르게 작동해야합니까?
- 23. if 문이 트리거되지 않습니다.
- 24. if 문이 더 효율적입니까?
- 25. if 문이 두 개입니까?
- 26. if 문이 작동하지 않습니까?
- 27. subprocess.Popen에 if 문이 있습니다.
- 28. if 문이 잘못되었습니다
- 29. Rails IF 문이 작동하지 않습니다.
- 30. Javascript - if 문이 작동하지 않습니까?
대단히 감사합니다! 내가 뭘 찾고 있었는지. – user2752347