希望大佬幫小白解釋下,以下代碼輸出的為什么是6,而不是3?
#include<iostream>
using namespace std;
int main()
{
int a=3;
if(a=5)
cout<<a+1<<endl;
else
cout<<a<<endl;
return 0;
}
uj5u.com熱心網友回復:
if(a==5) 不是a=5uj5u.com熱心網友回復:
嗯,我知道。但是題目就是這樣的
uj5u.com熱心網友回復:
因為a=5 不是a==5 所以 執行完if(..)陳述句后a變成了5,列印a+1,不就是6嗎?uj5u.com熱心網友回復:
那前面的 int a=3沒用?uj5u.com熱心網友回復:
對。。。。。。uj5u.com熱心網友回復:
if(a=5)程式執行的時候,a賦值為5且if判定總為true,所以是6uj5u.com熱心網友回復:
我之前的理解是:因為 int a=3;
if(a=5)就不成立,所以跳到else輸出3。

uj5u.com熱心網友回復:
7樓回答是正確的。uj5u.com熱心網友回復:
按照c++的標準if( 運算式)
{1}
else
{2}
這個運算式總是轉為bool 變數 然后根據轉換后的結果確定執行 ,如果為true執行1,如果為false 執行2
那么 a=5 這個運算式回傳5
把5轉為bool,是true,因此執行1
這里我再提個問題:
如果
if(a=-5)則執行什么??請不要用電腦試。
uj5u.com熱心網友回復:
正如7樓所說,a=5是賦值。那是不是說只要a的賦值不是0,if(a=n)都是true。所以if(a=-5)也是true,輸出-4
uj5u.com熱心網友回復:
你又犯了一個錯誤
如果 if(a=0)呢?
不要知其然,不知其所以然?
uj5u.com熱心網友回復:
7 10 11樓正解,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88730.html
標籤:C++ 語言
上一篇:遞回問題
