Board logo

标题: If Else语句嵌套用法 [打印本页]

作者: 苹果也疯狂    时间: 2015-1-12 21:19     标题: If Else语句嵌套用法

If ( Condition1 )

        {

            If ( Condition2 )

                /* 整个 If Else If ... Else 结构只算是一个语句,所以这里可以不加大括号 */

                If ( Condition3 )

                {

                    /* ... ... */

                }

                Else If ( Condition4 )

                {

                    /* ... ... */

                }

                Else

                {   /* 这里的大括号也可以去掉。后面的代码中很多地方都可以不用大括号 */

                    If ( Condition5 )

                    {

                        /* ... ... */

                    }

                    Else

                    {

                        /* ... ... */

                    }

                }

            For ( Exp1; Exp2; Exp3 )

            {

                If ( Condition6 )

                {

                    /* ... ... */

                }

            }

            While ( Condition7 )

            {

                If ( Condition8 )

                {

                    /* ... ... */

                }

            }

            Do

            {

                If ( Condition9 )

                {

                    /* ... ... */

                }

            } While ( Condition10 );

        }

如上例所示,If 语句中不止可以嵌套 If 语句,也可以嵌套循环语句;循环语句中也可以嵌套 If 语句。其实,我们前面说的 If Else If ... Else 就是 If 语句嵌套。上例中,虽然 If ( Condition2 ) 后面没必要加大括号,但我建议最好还是加上。加上大括号可以使代码的结构更加清晰,易于理解,特别是语句非常长的时候(如本例,If ( Condition2 ) 后的语句非常长!)。此外,加大括号还有一个好处,就是如果我们以后需要添加更多语句到 If 之下时,就不用怕会忘记加大括号,因为大括号已经存在了。例如:

        If ( Condition )

        {

            Printf("Abcd
");

        }

当我们需要再加一句 Printf("Efg
"); 到该 If 结构之下时,就不必担心会忘掉给它加上大括号,毕竟大括号已经存在了。

        If ( Condition )

        {

            Printf("Abcd
");

            Printf("Efg
");

        }

也许你会觉得,我怎么可能会忘掉加大括号呢?当然,对于上面这个简单的例子来说,你很可能不会犯这种低级错误。但假设 If 之下是一个非常长而复杂的 If 语句呢?就好像文章开头的那个例子那样,你就难保不会忘掉了吧!所以我推荐写 If 语句的时候顺便把大括号也写上,无论是否有必要。这个道理对循环语句同样成立。下面我们通过一个简单的例子学习 If 语句嵌套:

        If ( Gender == MALE )

        {

            If ( Age < 14 )

            {

                Printf("Hey! Boy.
");

            }

            Else If ( Age > 14 )

            {

                Printf("Hi! Guy.
");

            }

            /* ... ... */

        }

        Else

        {

            /* ... ... */

        }

其实这个例子的结构已经很清晰了,我想没必要详细讲吧。如果 Gender == MALE 成立,则进入该 If 下的程序块(即复合语句),继续判断 Age 的值,根据 Age 的值选择要输出的内容;如果 Gender == MALE 不成立,则执行 Else 下的程序块。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0