Indentation Problem

とか && が出てくると、インデントにいつも迷う。
(1)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) || EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
    SigScm_Error("number required\n");

(2)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    || EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
    SigScm_Error("number required\n");

(3)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
    SigScm_Error("number required\n");

(4)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
    SigScm_Error("number required\n");

括弧が付くとまた変わってくる。

(5)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) || EQ(ScmOp_numberp(scm_n2), SCM_FALSE)) {
    SigScm_Error("number required\n");
}

(6)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) || EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
{
    SigScm_Error("number required\n");
}

(7)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    || EQ(ScmOp_numberp(scm_n2), SCM_FALSE)) {
    SigScm_Error("number required\n");
}

(8)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    || EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
{
    SigScm_Error("number required\n");
}

(9)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE)) {
    SigScm_Error("number required\n");
}

(10)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE) ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
{
    SigScm_Error("number required\n");
}

(11)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE)) {
    SigScm_Error("number required\n");
}

(12)
if (EQ(ScmOp_numberp(scm_n1), SCM_FALSE)
    ||
    EQ(ScmOp_numberp(scm_n2), SCM_FALSE))
{
    SigScm_Error("number required\n");
}

皆さんどれがお好みでしょうか。個人的には(8)がすっきりしていて見やすいと思うのですが。