c# for(int i;i<3;i++)迴圈的執行次序
今天無意中,在工作中發現以前對for迴圈的理解大錯特錯.
class Program
{
static string InStr = "ab";
private static string AddTo18(string str)
{
string th = str;
--------------------------------------------------------------------------------------------------------
下面為執行完for迴圈第一輪時的執行流程
--------------------------------------------------------------------------------------------------------
1,先執行i=str.length結果是2(因為instr是ab)
2,判斷i<3,2<3是符合條件(注:如果不符合i<3,直接就退出for迴圈了)
//我以前的錯誤理解是執行完i<3後,會執行i++,
//實際是執行完i<3會執行oth+="0"
3,此時會執行for迴圈中的oth+="0",此時oth的結果由ab變成ab0
--------------------------------------------------------------------------------------------------------
下面為執行完for迴圈第一輪後的執行流程
--------------------------------------------------------------------------------------------------------
//執行完for迴圈中的程式碼塊,會執行i++,而不是i<3
4,執行i++,此時i的結果為3
//執行完i++,會接著執行i<3的判斷
5,執行i<3,3<3不成立.直接退出for迴圈,不會繼續執行oth+="0"
for (int i = str.Length; i < 3;i++ )
{
oth += "0";
}
return oth.Substring(0, 18);
}
static void Main(string[] args)
{
Console.WriteLine(AddTo18(InStr));
Console.ReadKey();
}
}
一定要加深對於語法的理解.不然由此構成的複雜一些的程式就會弄暈人
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-723150/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在XSL裡執行類似for(i=0;i〈x;i++)的迴圈 (轉)
- jvm是如何執行i = i++ + ++i的,你知道嗎?JVM
- synchronized下的 i+=2 和 i++ i++執行結果居然不一樣synchronized
- 圖解i++和++i圖解
- java中i=i++的問題Java
- 面試官又整新活,居然問我for迴圈用i++和++i哪個效率高?面試
- 關於java中的i++和++iJava
- JAVA的i++, i+=1, i=i+1有區別嗎?Java
- c語言中i++與++i的使用技巧C語言
- C++複習整理---i++和++iC++
- 位元組碼指令分析 ++i 和 i++
- C++中的i++和++i你真的理解嗎?C++
- C#自增運算子詳解:++i與i++的區別及應用場景C#
- Java中 i=i++ 問題底層原理解析Java
- 每天學點C++知識:用 ++i 替代 i++C++
- python 中的i++ ,邏輯表示式Python
- 美團一面問我i++跟++i的區別是什麼
- 一道非常棘手的 常見Java 面試題:i++ 是執行緒安全的嗎?Java面試題執行緒
- Throwing cards away I(queue迴圈佇列)佇列
- 一個關於 i++ 和 ++i 的面試題打趴了所有人面試題
- Java變數自增表示式 i = i++ 的底層邏輯(簡述)Java變數
- 好程式設計師web前端教程分享初學者搞懂i++和++i程式設計師Web前端
- C# 迴圈時,操作另外一個程式直到操作完成,迴圈繼續執行C#
- 9i並行執行的限制並行
- Runloop-執行迴圈OOP
- node事件迴圈EventEmitter非同步I/OBuffer緩衝區模組事件MIT非同步
- C# 迴圈C#
- C#迴圈C#
- JavaScript for迴圈 執行順序JavaScript
- 多執行緒迴圈控制欄位失效造成死迴圈的坑執行緒
- node事件迴圈 EventEmitter 非同步I/O Buffer緩衝區 模組事件MIT非同步
- 9i奇怪的AJ執行計劃
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- JavaScript如何中斷迴圈執行?JavaScript
- ACM(遞迴遞推—I)ACM遞迴
- (轉)Qt 的執行緒與事件迴圈QT執行緒事件
- Casperjs迴圈執行(重複執行不退出)JS
- Redis篇:單執行緒I/O模型Redis執行緒模型