循环遍历数组,找到零,执行动作,停止

时间:2016-09-17 03:39:59

标签: c arrays

我在编程方面相对较新,而且我无法弄清楚如何循环数组直到计数器找到零,并且当它找到零一次时,执行一个动作并退出循环。这是我到目前为止的循环:

for (int i = 0; i<13; i++)
{
    if(pHand[i] == 0)
    {
        pHand[i] = deal(numArray);
        printf("%d\n", i);

        printHand(pHand, "Your");
    }
}

目前,这循环遍历数组,直到找到零,调用deal(),打印pH值的值,然后循环返回相同的序列,直到i = 0。请帮忙。我完全不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:4)

break语句可用于退出封闭循环(例如,while,do-while或for)或切换。

for (int i = 0; i<13; i++)
{
    if(pHand[i] == 0)
    {
        pHand[i] = deal(numArray);
        printf("%d\n", i);

        printHand(pHand, "Your");
        break;
    }
}
// code will continue executing here if the for loop condition becomes
// false (i is 13) or if the break statement is reached.

答案 1 :(得分:0)

在你的代码中,如果遇到ZERO值单元格,你只需调用“deal”函数和printf,但是你不退出循环,你将继续下一次迭代。 为了退出循环,在“if”范围中添加“break”语句,一旦满足条件,您将退出循环。

答案 2 :(得分:-1)

有些人认为break有害。我已经使用了很多,但是有些人对它有疑问。如果您想避免使用break,可以执行以下操作:

int i = 0;
char finished = 0;

while (i < 13 && !finished)
{
    if(pHand[i] == 0)
    {
        pHand[i] = deal(numArray);
        printf("%d\n", i);
        printHand(pHand, "Your");
        finished = 1;
    }
    i++;
}

你也可以重做它来使用do-while。有人会说,这种解决方案在语义上更好一点。