2017-12-24 8 views

답변

2

하기는 조건 연산자를 할 수없는 뭔가를 쓰기 위해 노력하고 있습니다. 대신

:

if (temp.data == xData) return true; 
temp = temp.next; 

return (temp.data == xData)? true : temp = temp.next ; 

항상 돌아갑니다. 그것은 결국 return 문입니다. 따라서 루프는 한 번만 반복됩니다. 그러나

return (temp.data == xData)? true : (temp = temp.next); 

: - 점은 무엇

  • 당신은 반환하기 전에 즉시 로컬 변수를 다시 지정

    당신은 할당을 괄호 수 있 었는가?

  • 표현식의 유형이 부울이 아니므로 메소드의 리턴 유형과 호환되지 않습니다.

이 작성하는 더 좋은 방법 for 루프를 사용하는 것입니다 :

for (Node temp = head; temp != null; temp = temp.next) { 
    if (temp.data == xData) return true; 
} 
return false; 
1

코드의 나머지 부분입니다 두 번째와 세 번째 피연산자는 다른 유형 (booleanNode)을가집니다.

게다가 조건이 true 일 때 루프에서 빠져 나가고 (return 문 사용) 루프에서 벗어나지 않으므로 조건식이 의미가 없습니다.

static boolean search(int xData) { 

    Node temp = head ; 

    while(temp != null) { 
     if (temp.data == xData) 
      return true; 
     temp = temp.next; 
    } 

    return false ; 
} 
관련 문제