LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 983|回复: 4

if - else结构歧义性问题

[复制链接]
发表于 2005-5-16 20:41:20 | 显示全部楼层 |阅读模式
形如:
if (...)
    ...
else if (...)
    ...
else if (...)
    ...
else if (...)
   ...
else
   ...
请问最后一个else 是属于谁的????3个else if是与最外层的if并列的呢???还是层层嵌套的???通俗地问,缩进是越来越往右移吗???
谢谢!
发表于 2005-5-16 21:16:19 | 显示全部楼层
并列的!
找K&R的C语言程序设计 看吧!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-16 21:45:40 | 显示全部楼层
Post by adams
并列的!
找K&R的C语言程序设计 看吧!


看了,就是看了,才感觉不明白:
从逻辑上讲
if (...)
...
else if (...)
...
else if (...)
...
else if (...)
...
else
...
###############################################################
[php]
if (...)
    ...
else
    if (...)
        ...
     else
            if (...)
                ...
            else
                if (...)
                    ...
                else
                    ...
两者完成的功能上是一样的
按照c语言的定义,c 对代码的格式是无要求的,else if中间有一个空格,那么我就可以把它写成下面那个样子,其实缩进也不是必须的,那么问题就是我像下面这么写,编译器是认为它们是并列的呢,还是的嵌套的呢???
虽然两者实现一样的功能,但我很疑惑,谢谢指教!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-16 21:46:38 | 显示全部楼层
Post by adams
并列的!
找K&R的C语言程序设计 看吧!


看了,就是看了,才感觉不明白:
从逻辑上讲
if (...)
...
else if (...)
...
else if (...)
...
else if (...)
...
else
...
###############################################################
[php]
if (...)
    ...
else
    if (...)
        ...
     else
            if (...)
                ...
            else
                if (...)
                    ...
                else
                    ...
[/php]
两者完成的功能上是一样的
按照c语言的定义,c 对代码的格式是无要求的,else if中间有一个空格,那么我就可以把它写成下面那个样子,其实缩进也不是必须的,那么问题就是我像下面这么写,编译器是认为它们是并列的呢,还是的嵌套的呢???
虽然两者实现一样的功能,但我很疑惑,谢谢指教!!!
回复 支持 反对

使用道具 举报

发表于 2005-5-16 21:53:59 | 显示全部楼层
语法上是嵌套的,但由于逻辑上和并列的没有区别,人们写程序的时候当成并列的来看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表