While循环中的For循环

用户名

我正试图数一串猫和狗。所以,

例如:

如果字符串是“ cc + dd-cd”,则:

我想算2 positive cats2 positive dogs1 negative cat1 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的值,但不要修改它。因此,一旦您输入了其中一个,您将无限期地停留在那里,因为k在循环体内不会发生变化。

我不会打扰嵌套循环-我只需要在一个循环中遍历整个字符串,然后依次评估每个字符。完成此操作的一种好方法是保持状态是要添加还是要减去(根据您上次遇到的+-符号还是符号:

bool positive = true;
string animalparkString = "cc+dd-cd";
for (int k = 0; k < animalparkString.size(); k++) {
     char ch = animalparkString[k];

     switch (ch) {
         case '+':
             positive = true;
             break;
         case '-':
             positive = false;
             break;
         case 'c':
             if (positive) {
                 pcc++;
             } else {
                 ncc++
             }
             break;
         case 'd':
             if (positive) {
                 pdc++;
             } else {
                 ndc++
             }
             break;
     }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章