title: Continue acting weird?
body: <p>Iv'e encountered this code:</p>
  
  <pre><code>int main() {
      int fd[2];
      pipe(fd);
      int pid;
  
      if ((pid = fork()) &lt; 0) {
          sysCallFailureProcedure();
      }
  
      if (pid == SON_PROCESS) {
  
          dup2(fd[0], 0);
          execlp(TETRIS_DISP_NAME, TETRIS_DISP_NAME, NULL);
  
          sysCallFailureProcedure();
      }
  
      char c;
      enum Bool hasNotQuitted;
      while (hasNotQuitted) {
          c = getch();
          if (!isAlegalKey(c)) {
              continue;
          }
          if(write(fd[1], &amp;c, 1) &lt; 0) {
              sysCallFailureProcedure();
          }
          kill(pid, SIGUSR2);
  
          if (c == QUIT_KEY) {
              hasNotQuitted = false;
          }
      }
  
      return OPERATION_SUCCEEDED;
  }
  </code></pre>
  
  <p>I'm trying to improve it and lose the continue statement (its a bad practice). But when I do,
  it causes my program to function not propetly, its a runner program for some kind of a tetris game. All I did is to replace the continue with this:</p>
  
  <pre><code>if(write(fd[1], &amp;c, 1) &lt; 0) {
      sysCallFailureProcedure();
  }
  kill(pid, SIGUSR2);
  
  if (c == QUIT_KEY) {
      hasNotQuitted = false;
  }
  </code></pre>
  
  <p>meaning the code that follows the continue.
  Can anyone tell me what did I miss?</p>