for迴圈可以說是程式中最靈活,最常用,最重要的乙個迴圈用法,大家經常用到,但是你真正理解for迴圈的執行原理嗎?
舉個例子:for(i=0;i<8;i++) 對於這個語句執行結束的時候 i 是多少?
經常用,卻沒怎麼注意,執行結束的時候 i 是8;
下面說一下for迴圈語句的執行過程:
for(表示式1;表示式2;表示式3)
這三個表示式,可以都有,也可以都沒有,也可以由任意的一項或兩項,這就是for的靈活性所在;
解釋一下三個表示式的含義:
表示式1:這個一般是初始化條件,如i=1。在第乙個分號之前,可以用乙個,也可以好幾個,用逗號隔開;
表示式2:這個是迴圈條件,滿足就繼續執行迴圈體,不滿足就跳出迴圈。這裡一般是個邏輯判斷語句;
表示式3:這個一般是改變迴圈條件的地方,如i++等。
執行順序是,先初始化,也就是運算表示式1,初始化完成後,這個表示式就沒有用處了;
接著判斷是否滿足迴圈條件,也就是運算表示式2,如果是真,就執行;
最後,運算表示式3,改變迴圈條件。這樣第一次迴圈完成。
接著第二次迴圈,也就是運算表示式2,看是否滿足迴圈條件,如果表示式2還滿足,接著執行迴圈體;
完成後運算表示式3。如此往復迴圈,直到不滿足表示式2後,跳出迴圈。
所以對於:for(i=0;i<8;i++)這個運算,當i=7的時候,滿足迴圈,執行完後,i 還會自加1,也就是i++,這樣 i 的值是8,再判斷i<8,不滿足,迴圈結束,此時 i=8。
類似的還有while迴圈,也要注意。比如while(i<8),迴圈結束時i=8;while(i<=8),迴圈結束時i=9。
快速排序 原來是這樣
咚咚咚,開講啦!今天呢,讓我們來看看一種快速的排序方法,哈哈,它的名字就叫做快速排序,時間複雜度 o nlogn 首先呢,以第乙個數 為了方便 為基準數也可以叫參照數,隨你怎麼叫,就是拿來參照的。比如 這樣一組亂序的數字 i j 6 1 2 7 9 3 4 5 10 8 小i站在 6 上面,小j站在...
Python列表原來是這樣的!
列表 列表是python中最基本也是最常用的資料結構之一。列表中的每個元素都被分配乙個數字作為索引,用來表示該元素在列表內所排在的位置。第乙個元素的索引是0,第二個索引是1,依此類推。python的列表是乙個有序可重複的元素集合,可巢狀 迭代 修改 分片 追加 刪除,成員判斷。從資料結構角度看,py...
MyBatis原來是這樣的 04
關於介面的理解 乙個體有可能有多個抽象面。抽象體與抽象面是有區別的。三個面向區別 1 我們在我們的介面中新增註解 查詢全部使用者 select select id,name,pwd password from user public listgetalluser 2 在mybatis的核心配置檔案中...