2013-07-08 2 views
2

코드가 올바르게 실행되지 않는 이유를 알아낼 수 없습니다 .- 간단히 조회 테이블에서 많은 값을 할당 한 다음 값을 확인하기 위해 검사를 실행하고 있습니다. 모두 0입니다. 어떤 이유로, 기본 숫자가 정당화되지 않더라도 실행중인 "확인"이 실패하고 계속 기본값을 할당합니다. 누군가가 내 "if/or"문이 아래에서 작동하지 않는 이유를 설명 할 수 있습니까? 나는 OR (||) 연산자가 C++에서 올바르게 작동하지 않습니다.

PF[i].pMktRefNoi = MD[mProp[i].m_NoiVectorNumber-1].Values[mProp[i].m_StartfColNum-1]; 
     cout << PF[i].pMktRefNoi << endl; 
    PF[i].pMktRefVal = MD[mProp[i].m_ValVectorNumber-1].Values[mProp[i].m_StartvColNum-1]; 
     cout << PF[i].pMktRefVal << endl; 
    PF[i].pMktRefRent = MD[mProp[i].m_RntVectorNumber-1].Values[mProp[i].m_StartfColNum-1]; 
     cout << PF[i].pMktRefRent << endl; 
    PF[i].pMktRefOcc = MD[mProp[i].m_OccVectorNumber-1].Values[mProp[i].m_StartfColNum-1]; 
     cout << PF[i].pMktRefOcc << endl; 

    // Error check the starting values we just assigned 
    if (PF[i].pMktRefNoi <= 0 || PF[i].pMktRefVal <= 0 || PF[i].pMktRefRent <= 0 || PF[i].pMktRefOcc <= 0); { 
    PF[i].Result = "Error - Invalid Starting Vector Value"; 
    PF[i].pMktRefNoi = 100; 
    PF[i].pMktRefVal = 100; 
    PF[i].pMktRefRent = 100; 
    PF[i].pMktRefOcc = 100; 
    } 

그래서 위의 코드에서 "cout을"문장의 각 출력의 모든 날에 확인 ... 제가 위에서 할당하고 모든 값이 할당시 유효하다는 것을 확인했습니다 값이 정확하게 할당되었고 0보다 큽니다. 그러나 if 문 다음에 모든 것이 여전히 100에 다시 할당됩니다. 누구든지 내 코드에 어떤 문제가 있는지 설명 할 수 있습니까?

+5

'pMktRefOcc <= 0); {'- 이것은 오류입니다. –

+0

답변 옆에있는 녹색 체크 표시를 클릭하면이 질문에 답변하지 않은 것으로 표시되지 않습니다. – Potatoswatter

답변

13

if 뒤에 여분의 세미콜론이 있습니다.

이 ...

if (...); { 

} 

는 ...이 할 필요가 :

첫 번째 경우에
if (...) { 

} 

에서, if에 부착 된 코드는 하나의 빈 문 ;입니다. 그런 다음 if의 결과에 관계없이 {} 내의 코드 블록이 실행됩니다.

+2

잘 알아 보았습니다. –

+0

잘됐다. – brentf

+0

고마워요. 내가 허락하자마자 나는 대답을 '받아 들일'것이다. 다시 한번 감사드립니다. – brentf

관련 문제