【发布时间】:2014-02-05 09:24:47
【问题描述】:
我有一个 C++ 方法,其中包含多个嵌套在方法的大括号中的“if 语句”。当使用 Gedit 的匹配大括号时,我正在检查以确保我所有的大括号都正确匹配。
问题:Gedit 指出我的最后两个大括号“超出范围”!
我使用 Geany 检查了相同的代码,它显示了我所有大括号的正确匹配。
但是,在编译时,在方法开头定义的方法的局部变量在后来的一些嵌套的“if 语句”中无法识别。大括号之间包含的数字行代码是否有限制?或者,是否存在会导致此问题的嵌套“if 和 else if 语句”的限制?
【问题讨论】:
-
显示代码。这里没有人有水晶碗来解决问题
-
我不相信嵌套块有任何指定的限制,但听起来你的代码确实可以使用refactorisation。
-
形式上不是,但你需要询问的事实清楚地表明你的函数太长太复杂了。
-
括号之间的代码行数没有限制,“else if”阶梯也没有限制。如果可以,请尝试使用 switch-case 语句。
-
代码不能轻易缩短。我正在加载一个链接列表,其中每个节点都有 4 个参数,A、B、C 和 D。我根据 A 的分配大小对所有节点进行排序。对于所有具有相同大小的 A,我将相同的节点排序为不同大小的 B对于 C 和 D 也是如此。所以,我有很多 if 和 else 语句。