Heim >Datenbank >MySQL-Tutorial >“条件递进式编程”技巧两例

“条件递进式编程”技巧两例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:42:001184Durchsuche

什么是“条件递进式编程”?呵呵,这是我自己起的名字。所谓条件递进式编程,就是指需要一系列相关函数组合执行的情况下,后续函数执行的必要性由前面所有函数执行是否成功来决定。比如说,有一系列函数如下DoSomething1、DoSomething2、DoSomething3......D


什么是“条件递进式编程”?呵呵,这是我自己起的名字。所谓条件递进式编程,就是指需要一系列相关函数组合执行的情况下,后续函数执行的必要性由前面所有函数执行是否成功来决定。比如说,有一系列函数如下DoSomething1、DoSomething2、DoSomething3......DoSomethingN;DoSomething2函数执行的前提是DoSomething1函数必须执行成功,DoSomething3函数执行的前提是DoSomething1和DoSomething2都执行成功,DoSomethingN函数执行的前提是DoSomething1、DoSomething2、DoSomething3......DoSomething(N-1)都执行成功。

你会如何来写这段程序?不假思索,你可能会如下编写:

BOOL DoSomething()
{
 if (DoSomething1())
 {
  if (DoSomething2())
  {
   if (DoSomething3())
   {
    // ...
    return TRUE;
   }
  }
 }
 return FALSE;
}

这种层层嵌套的结构,逻辑上并没有错,但代码的可读性就差了一点。如果系列函数的数量很多(即上述N的值很大),那么整个代码结构的宽度将变得很长,代码的可读性将进一步降低,日后修改代码的时候也很容易出错。

下面,我将给出两种我本人认为很不错的程序结构。这两种程序结构不是我自创的,但我能看到它们智慧的光芒。另外,关于以下两种程序结构,我不想给出过多解释,读者用心慢慢体会吧!


程序结构1:

BOOL DoSomething()
{
 BOOL pass = DoSomething1();
 if (pass)
 {
  pass = DoSomething2();
 }
 if (pass)
 {
  pass = DoSomething3();
 }
 if (pass)
 {
  // ...
 }
 return pass;
}


程序结构2:

BOOL DoSomething()
{
 BOOL pass = FALSE; 
 do
 {
  if (!DoSomething1())
  {
   break;
  }
  if (!DoSomething2())
  {
   break;
  }
  if (!DoSomething3())
  {
   break;
  }
  // ...

  pass = TRUE;
 } while (FALSE);
 return pass;
}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:数据库范式那些事Nächster Artikel:sqlite数据库基本操作