2013-10-09 3 views
0

작동하려면 if 문을 사용할 수 없습니다. 그리고 관계없이 의 주말 if 진술은 계속 나타납니다. 내가 이전에 비슷한 질문을 알고 있지만, 그것은 단지에 관계없이 내가C++ if 문

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
int day; 
    cout << " Enter day of the week " << endl; 
    cin >> day; 
    switch (day) 
{ 
    case 1 : 
    case 6 : 
    case 7 : 
     cout << "weekend"; 
     break; 

    case 2 : 
    case 4 : 
     cout << "going to C++ Class"; 
     break; 

    case 3 : 
    case 5 : 
     cout << "studying for C++ Class"; 
     break; 

    default : 
     cout << "invalid day number"; 
    } 

    if (day == 1 || 6 || 7) 
     cout << "weekend" << endl; 
    else 
     if (day == 2 || 4) 
      cout << "Going to C++ Class"; 
     else 
      if (day == 2 || 5) 
       cout << "studying for C++ Class"; 
      else 
       if (day < 1 || day > 7) 
        cout << "bad day number"; 





    system("pause"); 
    return 0; 

}

+0

(일 == 1 || 일 == 6 || 일 == 7) 당신에 – memo1288

+0

전원을 켜고 경고를 컴파일러와 컴파일러를 얻을 수 경고를 오류로 처리하고 컴파일러가 이와 같은 오류를 catch합니다. 많은 회사들이 C++ 코드를 경고없이 컴파일해야 습관을 얻는 것이 좋습니다. –

답변

4

변경

if (day == 1 || 6 || 7) 

if (day == 1 || day == 6 || day == 7) 
에 시도 무엇을 작동하지 않습니다

그리고 이와 비슷한 조건이 비슷한 if입니다.


원래 테스트 조건 if (day == 1 || 6 || 7) (이 경우, 67)에 '0'이 아닌 숫자가 true로 평가되기 때문에 항상 참으로 평가, if ((day == 1)||6||7)에 해당합니다.

+0

고맙습니다 (: 컴퓨터 과학 학위를 받으려고 대학에만 신입생이 있습니다.나는 긴 길을 가지고있는 것처럼 보인다. 다시 한 번 감사드립니다. – user2860864

0

C 및 C++은 모든 숫자 값을 논리 값으로 해석 할 수 있습니다. 0은 거짓이고 다른 것은 사실입니다. 따라서 다음과 같은 구문 :로

if (day == 1 || 6 || 7) 

는 해석 작성하는 올바른 방법

"(하루에 하나) 또는 경우 (6 0이 아닌) 또는 ... 다음 (일곱은 0이 아닌)" 이다

if (day == 1 || day == 6 || day == 7) 
1

||는 그러한 67 리터럴 값으로 한정하지 부울 값에서 작동하는 논리 OR 연산자. 조건을 유효한 부울 문으로 분리해야합니다. 관계 연산자는 C++ <,>,<=,>=,==,!,etc에서 사용할 수 있습니다. 사용해보십시오 : 항상 true입니다

if(day == 1 || true || true) 

:

if (day == 1 || day == 6 || day == 7) 

67truthy 값은 C++에서 실제로하고 조건이 항상 진실 할 것, 현재의 문은 동일합니다.

0

if (day == 1 || 6 || 7)으로 0 일 또는 1을 반환하는 요일 == 1을 먼저 실행합니다. 그런 다음 0이 아닌 (즉 true) 숫자로 계속 켜고 1 개의 결과, 즉 true를 제공합니다. if (day == 1 || day == 6 || day == 7) if (day == 2 || day== 4)if (day == 2 || day == 5)

변화가이처럼 조건을 변경