如何不间断地停止循环

时间:2015-12-01 20:02:40

标签: c

如果A [] = - 999,如何让循环停止? (我不允许使用休息或继续)

x
|> Seq.groupBy (fun (x, y) -> x)
|> Seq.map (fun (k, v) -> k, v |> Seq.sortBy (fun (x, y) -> y))

3 个答案:

答案 0 :(得分:2)

您可以为for循环添加额外条件:

for(i=0 ; i<10 && A[10]!=(-999) ; i++) {...}

但无论如何,你最好初始化A[10]一些已知的初始值。您的A数组也没有A[10]元素。它的索引从09

答案 1 :(得分:2)

你可以设置i = 10,这将终止你的循环

int A[10];
int i , j , b , x;

for(i=0 ; i<10 ; i++)
{
    if(A[i]!=-999)
    {
       printf(" Enter the Number %d : ", i+1 );
       scanf("%d", &A[i] );
    }
    else if(A[i]==-999)
    {
    i=10;
    }
}

答案 2 :(得分:2)

只需添加end标记。

下面的代码也打破了非数字输入的循环。

#include <stdbool.h>

int A[10];
int i , j , b , x;
bool OK_to_continue = true;
for(i=0 ; OK_to_continue && i<10 ; i++) {
  printf(" Enter the Number %d : ", i+1 );

  // If scan fails or value read is the special -999
  if (scanf("%d", &A[i] ) != 1 || A[i] == -999) {
    OK_to_continue = false;
  }
}

OK_to_continue = false;的替代方案是i = 9;i = 10;。这样做的缺点是以下代码丢失了A[]中有效元素的数量。

存在许多解决方案。建议易于理解和合理有效的。