【发布时间】:2020-05-15 19:45:14
【问题描述】:
我正在尝试计算字符串中的猫和狗。所以,
例如:
如果字符串是“cc+dd-cd”,:
我想计算2 positive cats、2 positive dogs、1 negative cat、1 negative dog(是的,我知道这是一种奇怪的计算方式,但这是我的任务的一部分)。
我想过做一个 for 循环,在其中迭代字符串,然后嵌套在 for 循环中,我会有一个 while 循环,它会一直运行到“-”,然后运行到“+”或结尾.我开始编写代码,甚至没有深入其中,它创建了一个无限循环。
问题:我该如何解决?
谢谢!
string animalparkString = "cc+dd-cd"
for (int k = 0; k != animalparkString.size(); k++)
{
while (k != '-'){
pdc = pdc + 1; //positive dog count
pcc = pcc + 1; //positive cat count
}
while (k != '+') {
ndc = ndc + 1;
ncc = ncc + 1;
}
}
【问题讨论】:
-
那些
while循环不会对k做任何事情,所以如果第一次条件是true,它将永远是true。此外,无论如何,条件没有多大意义,而不是再次检查字符k,您应该检查它们与animalparkString[k]。 -
对于初学者来说,
k是一个索引,因此要与'-'或'+'进行比较,您应该使用animalparkString[k]。 -
不要忘记在 will 循环中检查 K,@Blaze 的答案是正确的并添加检查
标签: c++ for-loop while-loop infinite-loop