C言語勉強中 - ループの書き方に悩む

本を読んでいて気がついたのですが、ループの条件判定の中には式をいっぱい詰め込むのが主流みたいです。

  while( pos < max-1 && ( c = getchar() ) != EOF && c != '\n' ) {
    line[pos] = c;
    pos++;
  }

こんな感じ。
難しい><

  while(1) {
    if( pos >= max - 1 ) break;

    c = getchar();
    if( c == EOF ) break;
    if( c == '\n' ) break;

    line[pos] = c;
    pos++;
  }

こっちの方がいいなあ。


なんてことを思ってました。
しかし本を見ると

  for(pos=0; pos<max-1 && (c=getchar())!=EOF && c!='\n'; pos++ )
    line[pos] = c;

っていう書き方もあったりして
ますます「うへぇ…」っていう気分になってきました。
ゆとりプログラマーは一つの行に式が3つ以上あるとパンクしてしまうのです。


慣れれば気にならなくなるのかなー