2013-02-10 4 views
0

변수에 반환 된 값을 저장하지 않고 값을 반환하는 함수를 호출해도 괜찮습니까?반환 된 값을 저장하지 않고 함수를 호출하십시오.

class Test 
{ 
    int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 

    boolean validity() 
    { 
    //some code 
    isLeap(); 
    } 

    boolean isLeap(int y) 
    { 
     if(y%400==0 || (y%100!=0 && y%4==0)) 
     { 
      days[1] = 29;    
      return true; 
     } 
     else 
     { 
      days[1] = 28;   
      return false; 
     } 
    } 
} 
+0

컴파일러가 허용합니다. –

+2

'return isLeap();'을해야 컴파일 할 수 있지만 유효합니다. –

답변

3

이 예, 그것은이 허용 : 여기에 몇 가지 예제 코드입니다. 컴파일러는 오류를 발생시키지 않습니다. 그러나 귀하의 경우에는 불필요한 것을 위해 프로세서 시간을 사용하는 것은 의미가 없습니다.

+1

동일한 코드를 다른 곳에서도 사용하고 있습니다. – Jasjeev

0

가 네,이 코드 예제에서

을 허용, 그것은 좋은 코딩 스타일이 아니다 ... (XXX) 데이터를 업데이트 isLeap라는 기능. 나는 대부분의 사람들이 이와 같은 함수에서 업데이트되는 데이터의 부작용을 기대할 것이라고 생각하지 않는다.
의도하지 않은 부작용으로 인해 길잃은 버그가 발생할 수 있습니다.

관련 문제