我的一个for循环没有正确执行,我遇到了一些麻烦。我已经逐步完成了我的代码,试着看看它是怎么回事,但它似乎完全跳过了for循环,因此给出了不正确的输出。
我的for循环看起来像这样:
for (auto &link : p1links){
if (link->accessTransportType() != type){
continue;
}
if ((p1->accessReference() == link->accessReferenceNumber1() && p2->accessReference() == link->accessReferenceNumber2()) || (p1->accessReference() == link->accessReferenceNumber2() && p2->accessReference() == link->accessReferenceNumber1()))
{
anyPASS = true;
}
}
if (anyPASS){
m_outFile << p1->accessReference() << "," << p2->accessReference() << "," << "PASS" << endl;
return true;
}
else{
m_outFile << p1->accessReference() << "," << p2->accessReference() << "," << "FAIL" << endl;
return true;
break;
}
}
m_outFile << endl;
当我说accessTransportType()
等等时,这些是它试图访问的方法。
class Links
{
public:
Links(int, int, const string&, bool);
~Links();
int accessReferenceNumber1()const{ return referenceNumber1; }
int accessReferenceNumber2()const{ return referenceNumber2; }
string accessTransportType()const{ return transportType; }
bool accessHasBeenSearched()const{ return hasBeenSearched; }
private:
int referenceNumber1 = 0;
int referenceNumber2 = 0;
string transportType = "";
bool hasBeenSearched = false;
};
我的输出目前每次都返回FAIL,但我希望在第一次检查时返回PASS,然后在第二次检查时返回FAIL。