2017-11-05 14 views
3

단순화 할 수있는 방법이 있나요 : 나는단순화하면-조건

if(a == (b || o || j || ...)) 
{ 
    ... 
} 

같은 것을 할 수 있다고 생각

if(a == b || a == o || a == j || a ==....) 
{ 
    ... 
} 

는하지만 그건

+2

간단하지 않습니다. 값을리스트에 넣고'contains()'를 사용할 수 있습니다. –

+0

b, o, j 등이 상수 인 경우 Set (java 9 :'Set.of (b, o, j) .contains (a)'.Arrays.asList (b, o, j))를 만들 수 있습니다. –

+0

불행히도'if'를 단순화 할 수는 없지만,'switch' 문이 의미가있는 경우 여러 개의'case'를 함께 가질 수 있습니다. 그렇지 않으면 컬렉션 기반 제안은 아마도 가장 이해가됩니다. – dave

답변

4

만들고 잘못된 구문으로 밝혀졌다 a 및 다른 요소의의 가변 인수를 취하는 방법을 사용하면 요소에 대한 스트림. 임의의 요소가 a의 값과 동일한 지 확인합니다.

예 :

public boolean anyMatch(int a, int... values){ 
     return Arrays.stream(values).anyMatch(e -> e == a); 
} 

는 다음과 같이 호출 할 수 있습니다 :

if(anyMatch(a, o, j, b)){ ... }; 
+1

자바 8 장점을 사용하는 방법 :) – Stefan

-1

나는 당신의 변수는 정수 가정합니다.

List<Integer> values = Arrays.asList(b, o, j); 
if (values.contains(a)){ 
... 
}