Чтобы ваш код работал без особых изменений, вы можете просто заменить условие while()
на if()
. Более того, вместо проверки значения итератора k
, вы должны сравнить k-й строковый элемент animalparkString[k]
.
Тогда вы можете начать задаваться вопросом, действительно ли написанный вами код выполняет то, что вы ожидаете. Возможные вопросы, на которые вы можете попытаться ответить: «Как я могу отличить guish между положительным или отрицательным числом» и затем «как я могу отличить guish между кошками и собаками»? Возможно, вам придется проверить также на c
с и d
с, а не только на знак операции!
string animalparkString = "cc+dd-cd"
for (int k = 0; k != animalparkString.size(); k++)
{
if(animalparkStrink[k] != '-'){
// Now you know, there will be a pos count. Dog or Cat?
}
if(animalparkString[k] != '+') {
// Now you know, there will be a neg count. Dog or Cat?
}
}
Обратите внимание, что если вы напишите while( k != '-')
, оно всегда будет иметь значение true и, следовательно, вы застрянете там. Если вы впервые работаете с for-loops
, рассмотрите возможность печати значения итератора, чтобы понять, когда и где вы застряли.
string animalparkString = "cc+dd-cd"
for (int k = 0; k != animalparkString.size(); k++)
{
std::cout << "for-loop iteration number: " << k << std::endl;
if(animalparkStrink[k] != '-'){
// Now you know, there will be a pos count. Dog or Cat?
}
if(animalparkString[k] != '+') {
// Now you know, there will be a neg count. Dog or Cat?
}
}