If statement 否则阶梯优化
如何解决这个问题。如果我使用switch循环复杂度会增加,而且值也会感觉像真的。在某些情况下,解决方案是分离代码。不是每个人都喜欢它——我确实喜欢它 这只意味着你“从最高层”处理情况,并以回报结束情况 任何语言中的伪代码 (无论如何,一切都应该在一个函数中…) (在许多语言中,有一个“finally”或“always do”的概念,它可以在w/.breakoff dcode中很好地工作。) 你的例子。。。 第1步,按照应该的方式放入函数中,第2步使用“分离块” 一些人(但不是所有人)认为这样更好:If statement 否则阶梯优化,if-statement,If Statement,如何解决这个问题。如果我使用switch循环复杂度会增加,而且值也会感觉像真的。在某些情况下,解决方案是分离代码。不是每个人都喜欢它——我确实喜欢它 这只意味着你“从最高层”处理情况,并以回报结束情况 任何语言中的伪代码 (无论如何,一切都应该在一个函数中…) (在许多语言中,有一个“finally”或“always do”的概念,它可以在w/.breakoff dcode中很好地工作。) 你的例子。。。 第1步,按照应该的方式放入函数中,第2步使用“分离块” 一些人(但不是所有人)认为这样更好
Something()
{
if comms.text != 17.2
{
.. 100s of lines of code here ..
.. they are all indented ..
}
else
{
an error!
}
}
“分离代码”在某些情况下可能适用于您;在任何情况下,您都可以意识到这种方法。在某些情况下,解决方案是分离代码。不是每个人都喜欢它——我确实喜欢它 这只意味着你“从最高层”处理情况,并以回报结束情况 任何语言中的伪代码 (无论如何,一切都应该在一个函数中…) (在许多语言中,有一个“finally”或“always do”的概念,它可以在w/.breakoff dcode中很好地工作。) 你的例子。。。 第1步,按照应该的方式放入函数中,第2步使用“分离块” 一些人(但不是所有人)认为这样更好:
Something()
{
if comms.text != 17.2
{
.. 100s of lines of code here ..
.. they are all indented ..
}
else
{
an error!
}
}
“分离代码”在某些情况下可能适用于您;无论如何,你都可以意识到这种方法。它看起来已经很好了,你做得再好不过了。这绝对是可怕的-千万不要这样做。请注意,在你的具体例子中,请阅读“下面的分离代码”,你可以直接“删除所有其他代码”!!!因为它是分离代码!顺便问一下,“优化”是什么意思?你不喜欢这个代码中的什么?你想让它更具可读性?更易于维护?性能更好?没有比这更有效的了。可读性有点主观,如果您愿意,可以使用常量而不是幻数。你也可以像@Fattie建议的那样,如果你觉得那样更优雅的话,就把elses扔了。我个人认为这是可以接受的:)这是一个很好的观点,即“运行速度快”的意义上的“优化”绝对不是OP的意思,好的一个。OP只是意味着“更好的”工程-更清晰,更可维护,无论这些年软件工程的流行趋势是什么:OIt看起来已经很好了,你不能做得更好。它绝对可怕-永远不要这样做注意,在你的具体例子中,请阅读“下面的分离代码”,你可以直接“删除所有其他代码”!!!因为它是分离代码!顺便问一下,“优化”是什么意思?你不喜欢这个代码中的什么?你想让它更具可读性?更易于维护?性能更好?没有比这更有效的了。可读性有点主观,如果您愿意,可以使用常量而不是幻数。你也可以像@Fattie建议的那样,如果你觉得那样更优雅的话,就把elses扔了。我个人认为这是可以接受的:)这是一个很好的观点,即“运行速度快”的意义上的“优化”绝对不是OP的意思,好的一个。OP只是意味着“更好的”工程——更清晰、更可维护,无论这些年软件工程中流行什么:O
float HandleValue(float v)
{
if (2.0 <= v) {
return 1
}
if (0.7 < v && v < 2.0) {
return 0.9;
}
if (0.13 <= v && v <= 0.7) {
return 17.6;
}
log didn't find a bracket in HandleValue
return default value
}
Something()
{
if comms.text != 17.2
{
.. 100s of lines of code here ..
.. they are all indented ..
}
else
{
an error!
}
}
Something()
{
if comms.text == 17.2
{
an error!
return; .. note the "return" in breakaway code
}
.. 100s of lines of code here ..
.. no need for indentation ..
}