+ -
当前位置:首页 → 问答吧 → [c++] 新手问题

[c++] 新手问题

时间:2013-10-11

来源:互联网

#include <iostream>
using namespace std;

int main()
{
int target, trial;

cout << "Target: ";
cin >> target;
cout << "Trial: ";
cin >> trial;

if (target = trial)
{
cout << "Match!" << endl;
}
else
{
cout << "No match!" << endl;
}

system("AUSE");
return 0;
}


我知个问题出系应该用 target == trial, 但我唔明点解= 会唔得同埋点解净系有0既input会错

作者: 282741   发布时间: 2013-10-11

==是比较
=是设定

例如
int a = 5;
a这时就设定成5

而a == 5
就是比较a是否等於5

作者: Susan﹏汪汪   发布时间: 2013-10-11

但如果两个都系0
咁0=0点解唔系true?

作者: 282741   发布时间: 2013-10-11

但如果两个都系0
咁0=0点解唔系true?

作者: 282741   发布时间: 2013-10-11

引用:原帖由 282741 於 2013-9-26 08:50 PM 发表
但如果两个都系0
咁0=0点解唔系true?
单等号只是设定不是比较

作者: Susan﹏汪汪   发布时间: 2013-10-11

我明你意思,但我唔明点解有D test case岩,有D就错姐

作者: 282741   发布时间: 2013-10-11

(target = trial) 系Assignment statement
return 嘅value 会系lvalue 嘅reference value
姐系
(target = trial) 回存值是 target
[ '=' 唔系 "==" Susan﹏汪汪 已经解释左]
所以你认为 「0 = 0」 呢个concept 系错
因为佢根本唔系 comparison

所以
当你两个input 都系 '0' 嘅时候
if (target = trial) 系run time 演变成
if (target = 0)
==> if(0) // (因为return 左lvalue)
==> if(false) // c++ 系面 当数字作为condition 嘅时候 '0' 是 false, 'non-0' (e.g. 1,2,3,-1,56165...etc) 是true
所以佢出到黎会系行else 嘅case

作者: programmingproj   发布时间: 2013-10-11

明白啦唔该师兄

作者: 282741   发布时间: 2013-10-11

热门下载

更多