.NET基礎 一步步 一幕幕[迴圈、邏輯語句塊]

来源:http://www.cnblogs.com/yuhangwang/archive/2016/12/21/6208514.html
-Advertisement-
Play Games

迴圈、邏輯語句塊 好久不寫博客了,斷更了好幾天了,從上周五到今天,從北京到上海,跨越了1213.0公裡,從一個熟悉的城市到陌生的城市,還好本人適應力比較好,還有感謝小伙伴的接風咯,一切都不是事,好了,進入正題: 本篇還是.NET 基礎部分咯,主要簡述迴圈,判斷: 迴圈: for迴圈 語法: for( ...


 

迴圈、邏輯語句塊

 

好久不寫博客了,斷更了好幾天了,從上周五到今天,從北京到上海,跨越了1213.0公裡,從一個熟悉的城市到陌生的城市,還好本人適應力比較好,還有感謝小伙伴的接風咯,一切都不是事,好了,進入正題:

 

本篇還是.NET 基礎部分咯,主要簡述迴圈,判斷:

 

迴圈:

for迴圈

語法:

for(表達式1;表達式2;表達式3)

{

       迴圈體;

}

表達式1一般為聲明迴圈變數,記錄迴圈的次數(int i=0;)

表達式2一般為迴圈條件(i<10)

表達式3一般為改變迴圈條件的代碼,使迴圈條件終有一天不再成立(i++)。

執行過程:程式首先執行表達式1,聲明瞭一個迴圈變數用來記錄迴圈的次數,

然後執行表達式2,判斷迴圈條件是否成立,如果表達式2返回的結果為true,

則執行迴圈體。當執行完迴圈體後,執行表達式3,然後執行表達式2繼續判斷迴圈條件是否成立,如果成立則繼續執行迴圈體,如果不成立,則跳出for迴圈。

 

 案例:

註:如案例中的“水仙花數” 不懂自行百度。

 

foreach迴圈:

語法:

foreach(數據類型 標識符 in 表達式)

{

迴圈體

}

 

foreach (type identifier in expression)

{

Statement

}

其中:

type

identifier 的類型。

identifier

表示集合元素的迭代變數。如果迭代變數為值類型,則無法修改的只讀變數也是有效的。

expression

對象集合或數組表達式。集合元素的類型必須可以轉換為 identifier 類型。請不要使用計算為 null 的表達式。

而應計算為實現 IEnumerable 的類型或聲明 GetEnumerator 方法的類型。在後一種情況中,GetEnumerator 應該要麼返回實現 IEnumerator 的類型,要麼聲明 IEnumerator 中定義的所有方法。

statement

要執行的嵌入語句。

 

案例:

 

註:案例中是聲明一個int類型的數組。以後的篇章中會講述到數組、集合。

 

while迴圈

語法:

while(迴圈條件)

{

         迴圈體;

}

執行過程:程式運行到while處,首先判斷while所帶的小括弧內的迴圈條件是否成立,

如果成立的話,也就是返回一個true,則執行迴圈體,執行完一遍迴圈體後,再次回到

迴圈條件進行判斷,如果依然成立,則繼續執行迴圈體,如果不成立,則跳出while迴圈。

在while迴圈當中,一般總會有那麼一行代碼,能夠改變迴圈條件,使之終有一天不再成立,

如果沒有那麼一行代碼能夠改變迴圈條件,也就是迴圈條件永遠都成立,我們稱之這種迴圈

叫做死迴圈。

最簡單的最常用的死迴圈:

while(true)

{

 

}

特點:先判斷,再執行,有可能一遍迴圈都不執行。

 

案例:

 

 

do-while迴圈

語法:

do

{

         迴圈體;

}while(迴圈條件);

執行過程:程式首先會執行do中的迴圈體,執行完成後,去判斷do-while迴圈的迴圈條件,

如果成立,則繼續執行do中的迴圈體,如果不成立,則跳出do-while迴圈。

特點:先迴圈,再判斷,最少執行一遍迴圈體。

 

案例:

 

 

嵌套迴圈:外層迴圈用來控制輸出的行數,內層迴圈用來控制輸出的列數

for(表達式1;表達式2;表達式3)

{

       for(表達式1;表達式2;表達式3)

{

    迴圈體;

}

}

 

例如99乘法表:

 

 

邏輯語句塊:

if語句

語法:

if(判斷條件)

{

         要執行的代碼;

}

判斷條件:一般為關係表達式或者bool類型的值。

執行過程:程式運行到if處,首先判斷if所帶的小括弧中的判斷條件,

如果條件成立,也就是返回true,則執行if所帶的大括弧中的代碼,

如果判斷條件不成立,也就是返回一個false。則跳過if結構,繼續向下執行。

 

if結構的特點:先判斷,再執行

 

案例:

 

 

if-else

語法:

if(判斷條件)

{

         執行的代碼;

}

else

{

         執行的代碼

}

執行過程:程式執行到if處,首先判斷if所帶的小括弧中的判斷條件是否成立,

如果成立,也就是返回一個true,則執行if所帶的大括弧中的代碼,

執行完成後,跳出if-else結構。

如果if所帶的小括弧中的判斷條件不成立,也就是返回一個false,

則跳過if語句,執行else所帶的大括弧中的語句,執行完成後,跳出if-else結構。

 

if-else特點:先判斷,再執行,最少都要執行一條代碼。

用於兩種情況的判斷

 

註意:else永遠跟離它最近的那個if配對

 

案例:

 

 

if else-if

作用:用來處理多條件的區間性的判斷。

語法:

if(判斷條件)

{

         要執行的代碼;

}

else if(判斷條件)

{

         要執行的代碼;

}

else if(判斷條件)

{

         要執行的代碼;

}

else if(判斷條件)

{

         要執行的代碼;

}

........

else

{

         要執行的代碼;

}

執行過程;程式首先判斷第一個if所帶的小括弧中的判斷條件,如果條件成立,也就是返回一個true,

則執行該if所帶的大括弧中的代碼,執行完成後,立即跳出if else-if結構。

如果第一個if所帶的判斷條件不成立,也就是返回一個false,則繼續向下進行判斷,依次的判斷每一個if所帶

的判斷條件,如果成立,就執行該if所帶的大括弧中的代碼,如果不成立,則繼續向下判斷,

如果每個if所帶的判斷條件都不成立,就看當前這個if else-if結構中是否存在else。

如果有else的話,則執行else中所帶的代碼,如果沒有else,則整個 if-else if神馬都不做。

else可以省略。

 

案例:

 

 

根據上邊你就是會看出if else-if 在條件特別多的時候會導致代碼很長很不好看,這時我們會用另一個來替換:

switch-case

用來處理多條件的定值的判斷。

語法:

switch(變數或者表達式的值)

{

         case 值1:要執行的代碼;

         break;

         case 值2:要執行的代碼;

         break;

         case 值3:要執行的代碼;

         break;

         ..........

         default:要執行的代碼;

         break;

}

執行過程:程式執行到switch處,首先將括弧中變數或者表達式的值計算出來,

然後拿著這個值依次跟每個case後面所帶的值進行匹配,一旦匹配成功,則執行

該case所帶的代碼,執行完成後,遇到break。跳出switch-case結構。

如果,跟每個case所帶的值都不匹配。就看當前這個switch-case結構中是否存在

default,如果有default,則執行default中的語句,如果沒有default,則該switch-case結構

什麼都不做。

 

案例:

 

 

最後來個彩蛋

break ,continue ,return 的區別及作用:

第一:break語句通常用在迴圈語句和開關語句中,當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈而執行迴圈後面的語句, 通常break語句總是與if語句聯在一起,即滿足條件時便跳出迴圈。例如:註意:
1)       break語句對if-else的條件語句不起作用。
2)       在多層迴圈中, 一個break語句只向外跳一層。

第二:continue語句的作用是跳過迴圈本中剩餘的語句而強行執行下一次迴圈。continue語句只用在for、while、do-while等迴圈體中,常與if條件語句一起使用,用來加速迴圈。其實就是continue跳過一次迴圈以及後面的語句,進行下次迴圈。

第三: return語句是將函數的值返回主調函數。例如:
return  語句的一般形式為:
return 表達式
或者為:
return (表達式)

 

好了 , 本篇就到這裡了,另本篇提供的案例只有截圖,沒有運行的結果,請自行處理咯。希望能對初學者帶來幫助,更希望大神能帶帶我們,帶我們裝逼,帶我們飛。。。

最後打個小廣告:QQ群: .NET 一步步一幕幕   群號:590170361 (加群備註:博客園看到的)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 操作系統是電腦相關專業本科課程中最重要的課程! 操作系統是電腦相關專業本科課程中最重要的課程! 操作系統是電腦相關專業本科課程中最重要的課程! 重要的事情說三遍。大學讀了兩年半了,學習了3,4門硬體課程。我發現在我的大學中,本科硬體課程總體偏理論,旨在構建電腦硬體理論體系。之前彙編,組成原理 ...
  • 我遇到這個問題的時候查找網上都給出一堆高大上的解決辦法, 然而我的錯誤實際上是用戶名的問題, 很多人以為遠程用戶名就一定是鎖屏狀態下的登錄名, 其實不是,跟自己設置有關,所以首先應該檢查遠程用戶名是否輸入正確。 查看方式:被遠程電腦→win+Break→遠程設置→選擇用戶(在保證如下圖所示選擇的前提 ...
  • 通過以下方式之一定義方法,可以將參數發送至 Main 方法。 【備註】若要在 Windows 窗體應用程式中的 Main 方法中啟用命令行參數,必須手動修改 program.cs 中 Main 的簽名。 Windows 窗體設計器生成的代碼創建沒有輸入參數的 Main。 也可以使 用 Environ ...
  • Main方法是 C# 控制台應用程式或視窗應用程式的入口點。 (庫和服務不要求將 Main 方法作為入口點。) 應用程式啟動時,Main 方法是第一個調用的方法。 C# 程式中只能有一個入口點。 如果有多個類都包含 Main 方法,則必須使用 /main 編譯器選項編譯程式,以指定用作入口點的 Ma ...
  • 工具》選項》 確定後 如圖就可以多行顯示了。 ...
  • 這篇教程通過實現一個股票報價的小程式來講解如何使用SignalR進行伺服器端的推送,伺服器會模擬股票價格的波動,並把最新的股票價格推送給所有連接的客戶端。該文章參考的是[Server Broadcast with SignalR 2]這篇教程,很不錯的一篇教程,如果有興趣的話可以查看原文,今天記錄下... ...
  • 【HTML寫法標簽】【HTML字體段落標簽】【錨點】【有序無序列表】【表格】 ...
  • 最近學習使用CodeSmith代碼生成器 CodeSmith 是一種語法類似於asp.net的基於模板的代碼生成器,程式可以自定義模板,從而減少重覆編碼的勞動量,提高效率。 作用:CodeSmith 是一種基於模板的代碼生成工具,它使用類似於ASP.NET的語法來生成任意類型的代碼或文本。與其他許多 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...