int i;
  for (i = 0; i > -1; i += 1) {
    // ...
    if (terminal_condition)
      break;    
    // ...
  }


Let me be more explicit.  I'm reading the slocate code to figure out
why it isn't producing a database on my machine.  There is a loop that
reads

  int i;
  // ...
  for (i = 0; i > -1; i+=1) {
    file = fts_read(dir);
    if (!file)
      break;
    // ...
  }             

The code example from the source is even more inappropriate than my
first example since there is no reason to avoid testing the terminal
condition in the loop construct.  While there will be times when it is
difficult to compose a succinct for declaration, this is not one of
those cases.

  int i;
  for (i = 0; (file = ftp_read (dir)) != NULL; ++i) {
    // ...
  }

Moreover, i is never used.  The loop could be reduced to

  while ((file = fts_read (dir)) != NULL) {
    // ...
  }


Reply via email to