2013-12-16 10 views
0

그래서 현재 C++을 사용하여 코드하는 법을 배우고 있습니다. 아래의 코드를 보았습니다.다음 코드에서 혼동 스럽습니다.

// ======================= 
    // Lesson 2.4.3 - Do while 
    // ======================= 

    #include<iostream> 
    using namespace std; 

    int main() 
    { 
     bool condition = false; 

     do 
     { 
     cout << "Enter a 0 to quit or 1 to continue: "; 
     cin >> condition; 
     } 

     while (condition); 
    } 

왜 C++은 0이 루프를 중단하고 1이 루프를 계속한다는 것을 알고 있습니까? 0 = 거짓이고 위의 것이 사실이라는 것을 알고있는 명령과 관련이 있습니까? 도와 주실 수있는 분들께 감사드립니다.

+0

확인처럼이 스레드 해석됩니다. HTTP : // 유래합니다. ~/~ 4276207/is-cc-bool-type-always-0-or-1-when-typecasted-to-int – taocp

답변

1

변수 conditionbool 유형이므로 값은 true 또는 false 일 수 있습니다. false이면 루프가 종료됩니다. bool에 대한 입력 및 출력에서 ​​0은 거짓이고 1이 참입니다. 입력이 읽은 후 조건 while (condition);

while (condition = true); 

첫 번째 코드는 기본적

의해 상기 설정된 도착을 체크하기 때문에

2

부울 논리가 작동하는 방식입니다. 0은 거짓이고, 0이 아닌 것은 참입니다.

+0

아아아, 나는 그 일과 관련이 있다고 생각했지만 그냥 100 % 확실하지 않았다. 당신의 대답 주셔서 감사 : – BroooksyBearx

+0

C++ 라이브러리는 부울로 정수를 구문 분석 할 정도로 똑똑합니다. 따라서 사용자가 0을 입력하면 조건을 '거짓'으로 설정한다는 것을 알고 있습니다. – Paladine

+0

"부울 논리가 작동하는 방식"이라고 말하지 않습니다. 나는 그것이 "부울 논리가 c/C++에서 어떻게 작동하는지"라고 말할 것입니다. 나는 C++에서 자랐습니다. 그래서 다른 많은 언어가 int를 bool처럼 그렇게 강요시키지 않는지 얼마나 놀랐습니다. – neminem

1

while (0)은 false로 평가되므로 루프를 종료하기 때문입니다.

+0

답변 해 주셔서 감사합니다. – BroooksyBearx

-1

이것은 DO 본문의 코드를 의미하는 동안 루프 의지 루프 조건 값이 참일 때

+0

이것은 결코 끝나지 않을 것입니다. (또는 종료 될 때까지. 먼저 오는 것이 무엇이든) – usr2564301

+0

무엇을 의미합니까? – Luke

+0

과제는 항상 새로운 값을 반환합니다 (사실 'true'). 그래서 당신의 루프는'{..} while (true);'- 보일러 판의 네버 링딩 스토리 코드입니다. – usr2564301

0

bool 변수는 true 또는 false 중 하나의 조건을 가질 수 있습니다. 0은 false로 간주되고 0 이외의 값은 true로 간주됩니다. 그래서 당신이 쓴 상태 (때 조건 = 참

while(!0) // body opf while will execute 

때 조건이 = 그것은 거짓, C++이

while(0) // and body of do while will not execute. 
관련 문제