共用方式為


C# if 語句和迴圈 - 條件式邏輯教學課程

本教學課程會教導您如何撰寫 C# 程式代碼,以檢查變數,並根據這些變數變更執行路徑。 您可以撰寫 C# 程式代碼,並查看編譯和執行的結果。 本教學課程包含一系列課程,可探索 C# 中的分支和迴圈建構。 這些課程會教您 C# 語言的基本概念。

小提示

當代碼段區塊包含 [執行] 按鈕時,該按鈕會開啟互動式視窗,或取代互動式視窗中的現有程序代碼。 當程式碼片段不包含 [執行] 按鈕時,您可以複製程式代碼並將其加入目前的互動式視窗。

在互動式視窗中執行下列程序代碼。 選擇 執行

int a = 5;
int b = 6;
if (a + b > 10)
    Console.WriteLine("The answer is greater than 10.");

修改 的宣告 b ,讓總和小於 10:

int b = 3;

再次選取 [ 執行] 按鈕。 因為答案小於 10,因此不會列印任何內容。 您測試的 條件 為假。 您沒有任何可以執行的程式碼,因為您只撰寫了 if 語句的其中一個可能分支:真分支。

小提示

當您探索 C# 或任何程式設計語言時,您在撰寫程式代碼時犯了錯誤。 編譯程式 會尋找這些錯誤,並將其回報給您。 當輸出包含錯誤訊息時,請仔細查看範例程式代碼,以及互動式視窗中的程式碼,以查看要修正的專案。 該練習可協助您瞭解 C# 程式代碼的結構。

此第一個範例顯示了 if 的威力以及布爾型別的強大功能。 布林值是可以有兩個值之一的變數:truefalse。 C# 會定義布爾變數的特殊類型 bool 。 指令 if 會檢查 bool 的值。 當值為 true時,執行之後的 if 語句。 否則會被略過。

根據這些條件檢查條件和執行語句的程式非常強大。 讓我們進一步探索。

讓 if 和 else 一起運作

若要在 true 和 false 分支中執行不同的程式碼,您可以建立 else 在條件為 false 時執行的分支。 請嘗試下列程式代碼:

int a = 5;
int b = 3;
if (a + b > 10)
    Console.WriteLine("The answer is greater than 10");
else
    Console.WriteLine("The answer is not greater than 10");

只有在測試的條件為 false時,關鍵詞之後else的 語句才會執行。 結合 ifelse 與布爾值條件可提供您需要的所有電源。

這很重要

else 語句下的if縮排適用於人類讀者。 C# 語言不會將縮排或空格符視為重要。 或 else 關鍵詞後面的 if 語句會根據條件執行。 本教程中的所有範例都遵循一般做法,根據語句的控制流程縮排行。

因為縮排並不重要,因此您需要使用 {} 來指出何時要讓多個語句成為有條件執行的區塊的一部分。 C# 程式設計人員通常會在所有 和 else 子句上使用if這些大括弧。 下列範例與您建立的內容相同。 試試看。

int a = 5;
int b = 3;
if (a + b > 10)
{
    Console.WriteLine("The answer is greater than 10");
}
else
{
    Console.WriteLine("The answer is not greater than 10");
}

小提示

透過本教學課程的其餘部分,程式代碼範例全都包含大括弧,遵循公認的做法。

您可以測試更複雜的條件:

int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
    Console.WriteLine("The answer is greater than 10");
    Console.WriteLine("And the first number is equal to the second");
}
else
{
    Console.WriteLine("The answer is not greater than 10");
    Console.WriteLine("Or the first number is not equal to the second");
}

符號 == 會測試 是否相等。 使用 == 可區分相等與指派的測試,您在 中看到 a = 5此測試。

&&表示 「and」。。 這表示兩個條件都必須成立,才能在 true 分支中執行語句。 這些範例也示範您可以在每個條件分支中有多個 語句,前提是您在 和 }中括住{這些語句。

您也可以使用 || 來表示 「or」:

if ((a + b + c > 10) || (a == b))

變更 abc 的值,並在 &&|| 之間切換以探索。 您將更深入瞭解&&||運算子的運作方式。

使用迴圈來重複操作

建立大型程式的另一個重要概念是 迴圈。 您可以使用循環來重複您想要執行多次的語句。 在互動式視窗中嘗試此程式碼:

int counter = 0;
while (counter < 10)
{
    Console.WriteLine($"Hello World! The counter is {counter}");
    counter++;
}

語句 while 會檢查條件,並在 之後 while執行 語句。 它會重複檢查條件並執行這些語句,直到條件為 false 為止。

此範例中有另一個新運算符。 ++變數後面的 counter遞增運算符。 它會將 1 新增至計數器的值,並將該值儲存在計數器變數中。

這很重要

請確定循環條件會在您執行程式 while 碼時切換為 false。 否則,您會建立 無限迴圈 ,讓程式永不結束。 讓我們不示範這個,因為執行引擎逾時無法運作,結果您看不到程式的輸出結果。

在執行 while 後的程式碼之前,迴圈會while先測試條件。 do ... while 循環會先執行程式代碼,然後檢查條件。 看起來像這樣:

int counter = 0;
do
{
    Console.WriteLine($"Hello World! The counter is {counter}");
    counter++;
} while (counter < 10);

這個 do 迴圈和先前的 while 循環運作相同。

讓我們繼續進入最後一個迴圈語法。

使用 for 迴圈

您在 C# 程式代碼中看到的另一個常見循環語句是 for 迴圈。 在互動式視窗中嘗試此程式碼:

for (int counter = 0; counter < 10; counter++)
{
    Console.WriteLine($"Hello World! The counter is {counter}");
}

上述for循環會執行與迴圈dowhile您已使用的迴圈相同的工作。 語句 for 有三個部分可控制其運作方式:

  • 第一個部分是 初始化表達式的int counter = 0; 宣告為 counter 循環變數,並將其初始值設定為 0
  • 中間部分是 迴圈的條件counter < 10 宣告只要計數器的值小於 10,此 for 迴圈會繼續執行。
  • 最後一個部分是 for 迴圈counter++ 指定如何在執行完 for 語句後修改迴圈變數。 在這裡,它會指定 counter 每次區塊執行時遞增 1。

自行試驗這些條件。 請嘗試下列每個變更:

  • 變更初始化運算式以從不同的值開始。
  • 將條件變更為以不同的值停止。

完成時,讓我們繼續撰寫一些程序代碼,以使用您學到的內容。

在本教學課程中,有一個未涵蓋的迴圈語句:foreach 語句。 語句 foreach 會針對專案序列中的每個項目重複其語句。 它最常與 集合搭配使用。 下一個教學課程涵蓋此課程。

已建立巢狀迴圈

whiledofor 迴圈可以嵌套在另一個迴圈內,以外部迴圈中每個項目與內部迴圈中每個項目的組合來建立矩陣。 讓我們這樣做來建置一組英數字元組合來表示行和列。

for循環可以產生資料欄:

for (int row = 1; row < 11; row++)
{
    Console.WriteLine($"The row is {row}");
}

另一個循環可以產生資料列:

for (char column = 'a'; column < 'k'; column++)
{
    Console.WriteLine($"The column is {column}");
}

您可以將一個迴圈嵌套在另一個迴圈中,以形成嵌套關係:

for (int row = 1; row < 11; row++)
{
    for (char column = 'a'; column < 'k'; column++)
    {
        Console.WriteLine($"The cell is ({row}, {column})");
    }
}

您可以看到外部循環會針對內部迴圈的每個完整執行遞增一次。 反轉數據列和數據行巢狀,並自行查看變更。

合併分支和迴圈

既然您已在 C# 語言中看到 if 語句和迴圈建構,請參閱您是否可以撰寫 C# 程式代碼,以尋找 3 到 20 之間可分割之所有整數的總和。 以下是一些提示:

  • 運算子 % 會提供除法運算的其餘部分。
  • 語句 if 會提供條件來查看數位是否應是總和的一部分。
  • 循環 for 可協助您針對所有數位 1 到 20 重複一系列步驟。

親自試試看。 然後檢查您是如何做到的。 作為提示,您應該得到 63 個答案。

你想到類似的東西嗎?

:::code language=“csharp” interactive=“try-dotnet-method” source=“./snippets/BranchAndLoops/Program.cs” id=“Challenge”::

您已完成「分支和迴圈」互動式教學課程。 您可以選取 清單集合 連結以開始下一個互動式教學課程,或者您可以流覽 .NET 網站來下載 .NET SDK、在您的電腦上建立專案,以及繼續撰寫程式代碼。 「後續步驟」一節會帶您回到這些教學課程。

您可以在下列文章深入了解這些概念: