if 语句嵌套
2008-02-23 05:29:41来源:互联网 阅读 ()
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\n");
}
当我们需要再加一句 printf("efg\n"); 到该 if 结构之下时,就不必担心会忘掉给他加上大括号,毕竟大括号已存在了。
if ( condition )
{
printf("abcd\n");
printf("efg\n");
}
也许您会觉得,我怎么可能会忘掉加大括号呢?当然,对于上面这个简单的例子来说,您很可能不会犯这种低级错误。但假设 if 之下是个很长而复杂的 if 语句呢?就似乎文章开头的那个例子那样,您就难保不会忘掉了吧!所以我推荐写 if 语句的时候顺便把大括号也写上,无论是否有必要。这个道理对循环语句同样成立。下面我们通过一个简单的例子学习 if 语句嵌套:
/*--------------------------------------------------------------
| 作者: Antigloss @ http://stdcpp.cn @ 蚂蚁的 C/C 标准编程
|
| 功能: 演示 if 语句嵌套
-------------------------------------------------------------*/
if ( gender == MALE )
{
if ( age < 14 )
{
printf("Hey! Boy.\n");
}
else if ( age > 14 )
{
printf("Hi! Guy.\n");
}
/* ... ... */
}
else
{
/* ... ... */
}
其实这个例子的结构已很清楚了,我想没必要周详讲吧。假如 gender == MALE 成立,则进入该 if 下的程式块(即复合语句),继续判断 age 的值,根据 age 的值选择要输出的内容;假如 gender == MALE 不成立,则执行 else 下的程式块。
参考资料:C Primer 5th Edition
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 逻辑运算符
下一篇: linux入门必读指南(1)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash