C#常用的循環語句

在C#中,循環是一種控制結構,用于重復執行一組語句直到滿足特定條件。C#提供了幾種循環結構,包括for循環、while循環、do-while循環和foreach循環。每種循環都有其特定的用途和場景。下面我將逐一介紹這些循環的用法。

一、C#循環類型

1. for 循環

for循環是最常用的循環之一,它由初始化部分、條件表達式和迭代部分組成。

for (int i = 0; i < 10; i++)
{Console.WriteLine(i);
}

2. while 循環
while循環在給定條件為真時重復執行代碼塊。

int i = 0;
while (i < 10)
{Console.WriteLine(i);i++;
}

3. do-while 循環
do-while循環至少執行一次代碼塊,然后在每次迭代后檢查條件。

int i = 0;
do
{Console.WriteLine(i);i++;
} while (i < 10);

4. foreach 循環
foreach循環用于遍歷數組或集合中的每個元素。它通常用于讀取集合中的元素,而不是修改它們。

int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{Console.WriteLine(number);
}

示例:使用循環打印1到10的數字

// 使用for循環

for (int i = 1; i <= 10; i++)
{Console.WriteLine(i);
}

// 使用while循環

int i = 1;
while (i <= 10)
{Console.WriteLine(i);i++;
}

// 使用do-while循環

int j = 1;
do
{Console.WriteLine(j);j++;
} while (j <= 10);

注意事項:

  • 在使用for和while循環時,確保更新循環變量以避免無限循環。

  • 在使用foreach循環時,通常不修改集合中的元素,因為這將違反集合的預期用途并可能導致運行時錯誤。如果需要修改元素,請使用索引器或使用其他類型的循環(例如for)。

  • 選擇合適的循環類型可以提高代碼的可讀性和效率。例如,當你需要遍歷數組或集合的所有元素時,使用foreach;當你需要重復執行直到滿足某個條件時,使用while或do-while;當你需要精確控制迭代次數時,使用for循環

二、循環終止方式

1?.自然終止?

  • 當循環條件變為false時自動退出(如for循環的計數器超出范圍或while循環的條件不再滿足)?。

2?.break語句?

  • 作用?:立即終止當前所在循環,跳出循環體?。
  • 示例?:
for (int i = 0; i < 10; i++) 
{if (i == 5) break;  // 當i=5時終止循環
}

3?.continue語句?

  • 作用?:跳過當前迭代,進入下一次循環?45。
  • 示例?:
for (int i = 0; i < 5; i++) 
{if (i % 2 == 0) continue;  // 跳過偶數Console.WriteLine(i);      // 輸出1,3
}

4?.goto語句?

  • 作用?:跳轉到指定標簽位置,可退出多層嵌套循環?56。
  • 示例?:
for (int i = 0; i < 3; i++) 
{for (int j = 0; j < 3; j++) {if (j == 1) goto Exit;  // 跳轉到Exit標簽}
}
Exit: Console.WriteLine("已跳出循環");

?注意?:過度使用會降低代碼可讀性?。

三、選擇終止方式的建議?

終止方式適用場景注意事項
?自然終止?條件明確且可預測的循環確保循環條件最終變為false
?break?需提前終止循環(如錯誤檢測)僅終止當前循環層
?continue?跳過特定迭代(如過濾數據)避免跳過必要的循環終止條件
?goto?多層嵌套循環需快速退出謹慎使用,優先替代方案

通過合理選擇循環類型和終止方式,可顯著提升代碼效率和可維護性。建議優先使用break和continue,僅在必要時使用goto?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73033.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73033.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73033.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言(23)

字符串函數 11.strstr函數 1.1函數介紹&#xff1a; 頭文件&#xff1a;string.h char *strstr ( const char * str1,const char *str2); 作用&#xff1a;在一個字符串&#xff08;str1&#xff09;中尋找另外一個字符串&#xff08;str2&#xff09;是否出現過 如果找到…

Vue3實戰學習(Vue3的基礎語法學習與使用(超詳細))(3)

目錄 &#xff08;1&#xff09;Vue3工程環境準備、項目基礎腳手架搭建詳細教程。(博客鏈接) &#xff08;2&#xff09;Vue3的基礎語法學習與使用。 &#xff08;1&#xff09;"{{}}"綁定數據。 <1>ref()函數定義變量——綁定數據。 <2>reactive({...})…

vtkDepthSortPolyData 根據相機視圖方向對多邊形數據進行排序

1. 作用 在 3D 渲染中&#xff0c;透明對象的渲染順序非常重要。如果透明對象的渲染順序不正確&#xff0c;可能會導致錯誤的視覺效果&#xff08;例如&#xff0c;遠處的透明對象遮擋了近處的透明對象&#xff09;。vtkDepthSortPolyData 通過對多邊形數據進行深度排序&#…

【2025力扣打卡系列】0-1背包 完全背包

堅持按題型打卡&刷&梳理力扣算法題系列&#xff0c;語言為python3&#xff0c;Day5 0-1背包【目標和】 有n個物品&#xff0c;第i個物品的體積為w[i], 價值為v[i]。每個物品至多選一個&#xff0c;求體積和不超過capacity時的最大價值和常見變形 至多裝capacity&#x…

MyBatis-Plus 分頁查詢接口返回值問題剖析

在使用 MyBatis-Plus 進行分頁查詢時,很多開發者會遇到一個常見的問題:當分頁查詢接口返回值定義為 Page<T> 時,執行查詢會拋出異常;而將返回值修改為 IPage<T> 時,分頁查詢卻能正常工作。本文將從 MyBatis-Plus 的分頁機制入手,詳細分析這一問題的根源,并提…

《人月神話》:軟件工程的成本寓言與生存法則

1975年&#xff0c;Fred Brooks在《人月神話》中寫下那句振聾發聵的斷言——“向進度落后的項目增加人力&#xff0c;只會讓進度更加落后”——時&#xff0c;他或許未曾料到&#xff0c;這一觀點會在半個世紀后的人工智能與云原生時代&#xff0c;依然如達摩克利斯之劍般懸在每…

三維建模與視頻融合(3D-Video Integration)技術初探。

三維建模與視頻融合&#xff08;3D-Video Integration&#xff09;是一種將虛擬三維模型無縫嵌入實拍視頻場景的技術&#xff0c;廣泛應用于影視特效、增強現實&#xff08;AR&#xff09;、游戲開發、廣告制作 、視頻監控 等領域。 一、技術核心流程 三維建模與動畫 使用工具…

SpringMVC-全局異常處理

文章目錄 1. 全局異常處理2. 項目異常處理方案2.1 異常分類2.2 異常解決方案2.3 異常解決方案具體實現 1. 全局異常處理 問題&#xff1a;當我們在SpingMVC代碼中沒有對異常進行處理時&#xff0c;三層架構的默認處理異常方案是將異常拋給上級調用者。也就是說Mapper層報錯會將…

2025 cv2.imwrite存儲帶有中文路徑

一、前言 cv使用的更多一些&#xff0c;不過cv讀取和寫入帶有中文路徑的圖片會報錯有寫出亂碼。 以下代碼是從視頻中獲取第2幀保存在中文文件夾下的實例&#xff1a; cap cv2.VideoCapture("***.mp4")cap.set(cv2.CAP_PROP_POS_FRAMES, 2)ret, framecap.read()cv2…

在 CentOS 上,常用幾種方法來確保 Python 腳本在斷開終端后繼續運行

在 CentOS 上&#xff0c;你可以使用以下幾種方法來確保 Python 腳本在斷開終端后繼續運行&#xff1a; 1. 使用 nohup 命令 nohup 命令可以讓進程在終端關閉后繼續運行。 nohup python main.py > output.log 2>&1 &nohup&#xff1a;忽略掛斷信號&#xff0c…

blazemeter工具使用--用于自動生成jmeter腳本并進行性能測試

1、安裝blazemeter&#xff08;網上有很多詳情的教程&#xff09; 2、開始錄制&#xff1a;設置號你的文件名稱后開始錄制 3、錄制完成后保存為jmeter(jmx)文件 4、在jmeter中打開文件 5、添加一個后置處理器&#xff1a;查看結果樹&#xff0c;后運行看看能否成功&#xf…

6-langchang多模態輸入和自定義輸出

6-langchang多模態輸入和自定義輸出 多模態數據輸入urlbase64url list工具調用自定義輸出: JSON, XML, YAML如何解析 JSON 輸出json如何解析xmlYAML解析器多模態數據輸入 這里我們演示如何將多模態輸入直接傳遞給模型。我們目前期望所有輸入都以與OpenAI 期望的格式相同的格式…

【C#實現手寫Ollama服務交互,實現本地模型對話】

前言 C#手寫Ollama服務交互&#xff0c;實現本地模型對話 最近使用C#調用OllamaSharpe庫實現Ollama本地對話&#xff0c;然后思考著能否自己實現這個功能。經過一番查找&#xff0c;和查看OllamaSharpe源碼發現確實可以。其實就是開啟Ollama服務后&#xff0c;發送HTTP請求&a…

【C#學習筆記02】基本元素與數據類型

引言 深入了解C語言的基本元素、計算機存儲器結構、常量與變量的概念以及數據類型。這些內容是C語言編程的基礎&#xff0c;掌握它們對于編寫高效、可靠的嵌入式程序至關重要。 1.C語言的基本元素 ?編程語言的發展離不開自然語言&#xff0c;所以編程語言的語法和詞匯也是由…

ESP8266TCP客戶端(單連接TCP Client)

單連接TCP Client 電腦作為服務器&#xff0c;8266作為客戶端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相應&#xff1a;ok 2.連接路由器 ATCWJAP“SSID”&#xff0c;“password” //SSID就是wifi的名字&#xff0c; password WIFI密碼 響應&#xff…

洛谷 P2234:[HNOI2002] 營業額統計 ← STL set

【題目來源】 https://www.luogu.com.cn/problem/P2234 【題目描述】 Tiger 最近被公司升任為營業部經理&#xff0c;他上任后接受公司交給的第一項任務便是統計并分析公司成立以來的營業情況。 Tiger 拿出了公司的賬本&#xff0c;賬本上記錄了公司成立以來每天的營業額。分析…

VSCode 2025最新前端開發必備插件推薦匯總(提效指南)

&#x1f31f;前言: 如果你是一名前端開發工程師&#xff0c;合適的開發工具能大大提高工作效率。Visual Studio Code (VSCode) 憑借其輕量級、高擴展性的特點&#xff0c;已成為眾多前端開發者在win系電腦的首選IDE。 名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。—…

Java學習--Redis

官網&#xff1a;https://redis.io 中文網&#xff1a;Redis中文網 Redis安裝包分為 Windows 版和 Linux 版&#xff1a; Windows版下載地址&#xff1a;Releases microsoftarchive/redis GitHub Linux版下載地址&#xff1a; Index of /releases/ 一、Redis簡介 Redis是…

matlab慕課學習3.2+3.3

于20250310 3.2用if語句實現選擇結構 3.2.1什么是選擇結構 用if 語句和switch語句可實現選擇結構 3.2.2單分支if語句 if 條件語句組 %可以是一條也可是多條end 當條件為標量&#xff0c;非0表成立&#xff0c;0表示不成立。 當條件為矩陣時&#xff0c;矩陣非空&#xff…

JavaScript性能優化:DOM操作優化實戰

JavaScript性能優化&#xff1a;DOM操作優化實戰 一 重排與重繪的代價 問題場景 用戶點擊按鈕后&#xff0c;需要動態生成一個包含10,000個選項的下拉列表&#xff0c;但界面出現長達5秒的凍結。 錯誤代碼示例 function createList() {const ul document.getElementById(…