当前位置: 首页>JAVA>正文

for循環執行順序詳解(避坑)

for循環執行順序詳解(避坑)

今天刷題碰到的一個坑,就是沒有注意到for循環的每次判斷條件導致的**,也就是for循環的第二句**,每次循環都會執行該判斷條件。

for循環的表達式一般如下:

for(表達式1;表達式2;表達式3){表達式4;
}

執行的順序為:

  1. 第一次循環
    首先執行表達式1(一般為初始化語句,只執行一次),再執行表達式2(條件判斷語句),判斷表達式1是否符合表達式2的條件,如果符合,則執行表達式4,否則,停止執行,最后執行表達式3.
  2. 之后的循環:
    首先執行表達式2,如果符合,繼續執行表達式4,否則停止執行,最后執行表達式
  3. 如此往復,直到不再滿足表達式2的條件。

注意點是當我們修改了for循環中表達式2,條件判斷語句時,這時你就要注意的你的for循環很可能就會出錯。

案例

#include <iostream>
#include <queue>using namespace std;int main()
{queue<int> q;q.push(10);q.push(20);q.push(30);q.push(40);//這個循環只會打印出兩個數,因為每次隊列彈出值都會改變q的大小for (int i = 0; i < q.size(); i++) {cout << q.front() << ",";q.pop();  //彈出隊頭}             // 10,20//所以為避免每次q的大小改變,可以設定一個臨時變量int temp = q.size(); 把temp放到循環中。防止非預期結果。cout << endl;//這個循環會執行四次,因為表達式2沒有改變,表達式1僅進行初始化。for (int i = q.size() - 1; i >= 0; --i) {cout << q.front() << ",";q.pop();  //彈出隊頭}             // 10,20,30,40,
}

https://www.zydui.com/af9c1VW8CDQ9VAFEE.html
>

相关文章:

  • PyTorch學習筆記(15) ——PyTorch中的contiguous
  • 英雄聯盟英雄名單部分功能
  • 英雄聯盟皮膚爬蟲
  • java中for循環執行順序
  • for循環執行順序詳解(避坑)
  • DS18B20序列號的讀取
  • 上古卷軸java怎么刷_上古卷軸5快速升級方法一覽 教你如何快速升級
  • 上古卷軸 java_我打通了197KB的《上古卷軸四:湮滅》,諾基亞手機上的那一種...
  • 上古世紀服務器維護,9月22日臨時維護修改會員排隊問題服務器擴容公告
  • 上古世紀服務器維護真情禮,【已開服】4月15日經典服例行維護版本更新公告
  • 上古卷軸ol java_上古卷軸ol怎么滿級快
  • 全網最詳細解釋memcached中的flags含義
  • FLAGS寄存器 標志寄存器 英文全稱 方便記憶
  • Java爬蟲實戰第二篇:IOS、安卓應用爬蟲
  • 什么是storedownloaded,為什么在Mac上運行?
  • CSDN富文本編輯器回車行間距過大問題的解決
  • 批量處理word所有回車行
  • shell判斷字符串變量是否為空,包括純空格、空串、回車行是空白行等
  • 計算機畢業設計之開山車行二手車交易系統
  • Java實現“xx車行管理系統”
  • Java面試案例-車行易
  • 車行管理系統 java小作業
  • 3個躺著賺錢的神仙副業
  • 計算機中的windows任務管理器在哪,Win10系統中的explorer.exe在哪?怎么重啟Windows資源管理器?...
  • Win11查看文件資源管理器選項卡的方法
  • 為什么你總get不到增長玩法背后的邏輯?
  • JDBC連接MySQL數據庫(一)
  • 從零學Java(18)之三元運算符
  • CGU APAC 2017盛大開幕,七彩虹與英偉達聯手打造電競盛宴
  • AP 計算機 華麗逆襲-----被麻省理工計算機博士老師反復勸退的學生逆襲的肺腑之言