2013-07-02 3 views
-1

나는이 문장 가지고만약 작동하지 않거나 문이 제대로

... 거의이 물어 당황,하지만 난 문제를 찾을 수 없습니다 :

if (name_region.matches("")){ 
    System.out.println("He shows this"); 
} 

if (region.contains(name_region.substring(0, 2))||(firstLine == true)||(name_region.matches(""))){ 
    System.out.println("he doesn't show this"); 
} 

그는 첫 번째 전달을, 그러나 두 번째 것은 아닙니다.
OR 문이기 때문에 두 번째 문을 통과해야한다고 생각합니까?

내가 뭘 잘못 했니?

+3

'name_region.substring (0, 2)'는 예외를 던집니까? – NINCOMPOOP

+0

name_region의 값도 붙여 넣으십시오. –

+0

@ TheNewIdiot 아! 당신 말이 맞아, 내 예외에 로그를 게시하는 것을 잊어 버렸습니다 ... 그것은 예외를 던지므로, 왜 그런 일이 일어나지 않습니다 ... 감사합니다. – Bigflow

답변

4

나는 name_region.substring(0, 2)이 예외를 던지고 있다고 생각합니다. if()의 표현을 정렬하려고 :

if (name_region.matches("")|| 
    region.contains(name_region.substring(0, 2))|| 
    firstLine){ 
    System.out.println("he doesn't show this"); 
} 

||는 제 식 true 경우 따라서, 다른 평가되지 단락 OR 연산자이다.

+0

예,하지만 첫 번째가 사실이라면 "그는 does not show this "문자열이 기록 될 것이고 이해할 수없는 것입니다. – g00dy

+0

그는 그 표현을 마지막 것에 넣었 기 때문에! – NINCOMPOOP

+0

그는 맞습니다. an이나 statement의 경우 하나의 조건 만 true 일 필요가 있습니다. ||를 사용하면 다른 조건을 확인하지 않습니다. 왜냐하면 그는 이미 그 답변이 사실임을 알고 있기 때문입니다. 다른 조건을 계속 확인하려면 | – ian

관련 문제