我遇到过这样一种情况,我有一堆需要按顺序初始化的“系统”,只有在所有进行中的系统都成功初始化后,下一个系统才会被初始化。
这导致我使用大量嵌套的 if - else 语句。这是一些用于可视化的伪代码。
bool mainInit () {
if (!system1Init ()) {
reportError (); // some error reporting function
}
else {
if (!system2Init ()) {
reportError ();
}
else {
if (!system3Init ()) {
// ... and so on
我发现当你达到几个级别时,这开始看起来像一团糟。
现在我想改用 switch 语句,从第一种情况开始,在成功时一直到其他情况,只有在出现错误时才会中断。
bool mainInit () {
switch (1) {
case 1:
if (!system1Init ()) {
reportError ();
break;
}
case 2:
if (!system2Init ())
reportError ();
break;
}
// ....
}
现在,我更喜欢这个了。我发现它更容易阅读,尤其是一些不错的评论,但我对编程还很陌生。
所以,我的问题是:看看这不是传统上使用 switch 语句的方式(至少从我所见),这样的事情是否可以接受,或者这会被认为是不好的形式?
作为编程新手,我尽量不养成太多坏习惯,这些习惯可能会让其他程序员感到沮丧并使事情变得更加困难。
我进行了搜索,但我发现的大部分内容都与替换 if - else if 语句的链有关,而不是替换嵌套的语句。