결과는 6입니다. 그러나 i = 5가 0이 아닌 값으로 간주되지는 않습니까? 내가 i + = 5를하면, 사실로 간주됩니다. 이 점이 다른 이유는 무엇입니까? (또한 아니오, 나는 i == 5로 두는 것을 의미하지 않았다.)간단한 주제, 과제가 '거짓'을 반환합니까?
int i=7;
if(i=5) {
cout << ++i;
} else {
cout << --i;
}
결과는 6입니다. 그러나 i = 5가 0이 아닌 값으로 간주되지는 않습니까? 내가 i + = 5를하면, 사실로 간주됩니다. 이 점이 다른 이유는 무엇입니까? (또한 아니오, 나는 i == 5로 두는 것을 의미하지 않았다.)간단한 주제, 과제가 '거짓'을 반환합니까?
int i=7;
if(i=5) {
cout << ++i;
} else {
cout << --i;
}
대입 연산자와이 할당 된 것 후 객체의 값을 반환 +=
. 따라서 false
또는 0
을 할당하면 할당 연산자에서 false
을 얻을 수 있습니다.
i=5
은 이고, if()
의 눈에는 true
입니다. 그러나 i=0
은 0
으로 평가되며 false
은 if()
으로 간주됩니다.
할당은 할당 된 값을 반환합니다. 예 :
int i = 7;
if (i = 5) { // returns 5, which is non-zero, or "true"
cout << ++i; // prints 6, or 5+1
} else {
cout << --i; // would print 4, or 5-1, if it was hit, which it never will
}
사전 증가와 사후 증가가 혼동 될 수 있습니다.
int i = 7;
if (i = 5) { // returns 5, which is non-zero, or "true"
cout << i++; // prints 5, i is 6 after this line
} else {
cout << i--; // would print 5, but i is 4 after this line
}
코드는 다음과 같은 역할을 : 예를 들어, 다음을 고려 =
같은
i = 7;
i = 5;
if (5) // it's true. Isn't it ?
{
i = i + 1; // now i is 6
cout << i;
}
이 예상 결과가 아닙니다. 'i = 5'표현식이 0이 아닌 경우,'cout << ++ i; '의 결과는 6 (5 + 1)이 cout으로 전송됩니다. –
같은 질문은 전에 stackoverflow에 대한 답변되었습니다. [여기] (http://stackoverflow.com/questions/2003895/in-c-what-causes-an-assignment-to-evaluate-as-true-or-false-when-used-in-a- 죄송합니다.) 그렇습니다. – Arun
힌트 : 사소한 것이라면 이전에 물어 본 것 같습니다. 검색하면 투표 수를 줄일 수 있습니다. – tjameson