저는 초보자입니다. 간단한 프로그램을 만들고 있습니다. 입력 한 내용이 "데이터베이스"의 항목 중 하나와 일치하면, 일부 텍스트를 인쇄합니다.많은 if 문에 대한 빠른 대안
int 1;
int 2;
int 3;
등
if([USER INPUT].equals("1")) {
System.out.println("TEST");
}
400 회 : 오히려이 일을보다이를 확인하는 간단한 방법이있다.
저는 초보자입니다. 간단한 프로그램을 만들고 있습니다. 입력 한 내용이 "데이터베이스"의 항목 중 하나와 일치하면, 일부 텍스트를 인쇄합니다.많은 if 문에 대한 빠른 대안
int 1;
int 2;
int 3;
등
if([USER INPUT].equals("1")) {
System.out.println("TEST");
}
400 회 : 오히려이 일을보다이를 확인하는 간단한 방법이있다.
switch 문이나 HashMap을 사용하십시오.
switch 문 : 읽기 가능하지만 if-else 체인과 유사하게 (동일하지 않은 경우) 컴파일됩니다.
switch([USER_INPUT]) {
case 1:
System.out.println("TEST");
break;
case 2:
System.out.println("HELLO");
break;
// And so on.
}
Hash Map : 훨씬 더 읽기 쉽고 간단합니다. 이것은 선호됩니다.
// Initialization.
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"TEST");
map.put(2,"HELLO");
// Printing.
String s = map.get(USER_INPUT);
if (s == null)
System.out.println("Key doesn't exist.");
System.out.println(s);
switch
문을 사용하십시오.
switch(i){
case 1:
System.out.println("Hi");
break;
case 2:
System.out.println("Ok");
break;
// ...
}
키를 정수로, 값을 텍스트로 사용하는 HashMap을 사용하십시오.
System.out.println(myMap.get(USER_INPUT));
myMap.put(1, "TEST");
등을 수행 한 경우 코드가 많이 유지됩니다.
스위치의 기본 바이트 코드는 매우 유사하며 개인적으로 전환 전환의 이점을 볼 수 없습니다 (빠지기를 원하지 않는 한 break 문을 포함하지 않음).
switch 문을 사용할 수 있습니다.
다음은 빠른 자습서와 좀 더 자세한 설명입니다. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
재미있는 대안은 열거 형을 사용하는 것입니다. 이것은 클래스의 모든 값을 정의하려는 경우 작동합니다. 텍스트 값을 가져 오는 데 사용되는 코드를 단순화합니다. 그리고 switch 문이주는 것 이상의 재미있는 옵션을 제공합니다.
enum NumberText {
HELLO(1),
WORLD(2);
private static final HashMap<Integer,NumberText> map = new HashMap<Integer,NumberText>();
static{
for (ConnectionGenerator c : ConnectionGenerator.values()) {
map.put(c.code, c);
}
}
Integer code;
NumberText(Integer pCode) {
this.code = pCode;
}
Static ConnectionGenerator getTextFor(Integer code) {
return map.get(code);
}
}
그럼 간단하게이 작업을 수행, 텍스트를 얻을 :
NumberText nt = NumberText.getTextFor(USER_INPUT);
System.out.println(nt);
당신은 애호가 얻을 열거에 추가 생성자 변수를 넣고 텍스트의 특정 문자열을 가질 수 있습니다. , 당신의 int/문자열/어떤 행동 (`Runnable`,`Function`에서 스위치, 또는`지도`를 사용할 수 있습니다
NumberText.getNumberTextFor(USER_INPUT).getText();
"재미있는 대안"그건 거의이게 뭔 소리 야? –
:
그럼 당신은 이런 식으로 텍스트를 얻을 수 기타). – yshavit
400 개 명령을 하위 그룹으로 나누기 위해 계층 구조를 추가 할 수 있습니까? –
답변 중 하나가 귀하의 질문에 대한 답변이면 답변으로 표시하십시오. –