2009-11-08 49 views
0

我有這樣的代碼:C#繼續/轉到基本查詢

main() 
{ 
    for(i=0;i<100;i++) 
    { 
    if(cond1) 
     func(1); //Just some logics are present here 
    if (cond2) 
     if(cond3 | cond4) 
      func(2); 
and so on.... 
    } 
} 

void func(int) 
{ 
    do somthing; 
    if cond5 
     continue;// this is for the FOR loop in main() & I know this doesnt make sense. 
} 

因此,根據在功能「功能」一些IF條件,我想「繼續」 FOR環路出現在主要的( )。如何實現這一目標? 在此先感謝...

回答

1

從你的函數返回布爾值並繼續爲false。使用你的例子:

main() 
{ 
    for(i=0;i<100;i++) 
    { 
    if(cond1) 
     func(1); //Just some logics are present here 
    if (cond2) 
     if(cond3 | cond4) 
      if (!func(2)) 
      continue; 
and so on.... 
    } 
} 

bool func(int) 
{ 
    do somthing; 
    if cond5 
     return false; 
    return true 
} 
3
  1. 更改FUNC函數返回類型爲bool,所以如果滿意,假條件,否則將返回true。
  2. 在for循環中檢查func的返回值。如果是嘗試 - 請繼續。否則 - 什麼也不做。

    void main() 
        { 
         for(i=0;i<100;i++) 
         { 
         if(cond1) 
          if (func(1)) 
           continue;//Just some logics are present here 
         if (cond2) 
          if(cond3 | cond4) 
           if (func(2)) 
            continue; 
         and so on.... 
         } 
        } 
    bool func(int) 
    { 
        do somthing; 
        bool bRes = false; 
        if cond5 
         bRes = true;// this is for the FOR loop in main() & I know this doesnt make sense. 
        // .... 
        return bRes; 
    } 
    
+0

很好的答案,但你可能已經增加了大約你如何改變(改善)的programflow一些文本。 – 2009-11-08 17:06:45

+0

感謝您的提示。 – Oleg 2009-11-08 18:22:43