for(;1;)と書くことにしてる俺には関係ない話だ

forで条件を省略するとなんで真扱いになるのか納得のいく説明を聞いたことがない
ifやwhileは条件省略するとコンパイルエラーだというのに
詳しい人教えて