我試圖比較兩個字符串數組。每當我到達if語句中的while循環時,我都會陷入無限循環,因爲即使我在循環中有一個迭代器,它也不會增加。我在迴路中有cout<< finder;
只是爲了看什麼發現者在,並且它從不增加到零以上。如果有人能幫助,我會非常感激。循環中的迭代器不會增加
if (memory[p] == "J")
{
if (is_number(memory[p+1]))
{
worker = atoi(memory[p+1].c_str());
p = worker;
continue;
}
else
{
int finder = 0;
while (memory[p+1] != Symtablelab[finder])
{
cout << finder;
finder = finder + 1;
}
if (memory[p+1] == Symtablelab[finder])
{
int k = Symtablepos[finder];
worker = atoi(memory[k].c_str());
p = worker;
continue;
}
}
}
我會將它改爲'cout <<「memory [p + 1]:」<< memory [p + 1] <<「Symtablelab [finder]:」<< Symtablelab [finder] <<「finder:」 << finder;'。這樣你可以看到循環是否被執行了多次。你需要做的是確定你的狀態是什麼,以及是否你期望的。 –
@PreetSangha當我這樣做時,我得到正確的字符串值爲記憶[p + 1]和Symtablelab [0]正確的字符串值。它們並不相等。 Finder停留在零點,循環反覆運行,因爲它永遠不會增加。 – cadavid4j
在你的循環中有多少次「finder」被打印出來? – Naveen