日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#教程6:流控制语句

發布時間:2025/3/21 C# 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#教程6:流控制语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????在這部分 C# 教程中,將討論流控制。我們定義了幾個關鍵字,使我們能夠控制 C# 程序的流程。

????????在 C# 語言中,有幾個關鍵字用于改變程序的流程。當程序運行時,語句從源文件的頂部執行到底部逐個語句遞進。此流程可以通過特定關鍵字進行更改。語句可以執行多次。有些語句稱為條件語句。它們僅在滿足特定條件時執行。

一、C# if 表達式

if 語句具有以下一般形式:

if (expression) {statement; }

if 關鍵字用于檢查表達式是否為真。如果為真,則執行語句。該語句可以是單個語句或復合語句。復合語句由塊包圍的多個語句組成。塊是用大括號括起來的代碼。

Program.cs

var r = new Random();
int n = r.Next(-5, 5);

Console.WriteLine(n);

if (n > 0)
{
??? Console.WriteLine("The n variable is positive");
}

生成一個隨機數。如果數字大于零,我們會向終端打印一條消息。

var r = new Random(); int n = r.Next(-5, 5);

這兩行生成一個介于 -5 .. 5 之間的隨機整數。

if (n > 0) {Console.WriteLine("The n variable is positive"); }

????????使用 if 關鍵字,我們檢查生成的數字是否大于零。 if 關鍵字后跟一對圓括號。在括號內,我們放置一個表達式。該表達式產生一個布爾值。如果布爾值為真,則執行由兩個大括號括起來的塊。在我們的例子中,字符串“The n variable is positive”被打印到終端。如果隨機值為負,則什么也不做。如果我們只有一個表達式,大括號是可選的。

$ dotnet run -3 $ dotnet run -4 $ dotnet run -1 $ dotnet run 1 The n variable is positive

滿足條件時,將消息寫入控制臺。

二 、 C# else表達式

????????我們可以使用 else 關鍵字來創建一個簡單的分支。如果 if 關鍵字后面的方括號內的表達式計算結果為 false,則會自動執行 else 關鍵字后面的語句。

Program.cs

var r = new Random(); int n = r.Next(-5, 5);Console.WriteLine(n);if (n > 0) {Console.WriteLine("The number is positive"); } else {Console.WriteLine("The number is negative"); }

if 關鍵字后面的塊被執行,或者 else 關鍵字后面的塊被執行。

if (n > 0) {Console.WriteLine("The number is positive"); } else {Console.WriteLine("The number is negative"); }

else 關鍵字跟在 if 塊的右花括號之后。它有自己的塊,由一對花括號括起來。

$ dotnet run -3 The number is negative $ dotnet run -1 The number is negative $ dotnet run 2 The number is positive

We execute the program three times.

三、C# else if表達式

????????我們可以使用 else if 關鍵字創建多個分支。當且僅當不滿足前一個條件時,else if 關鍵字測試另一個條件。請注意,我們可以在測試中使用多個 else if 關鍵字。

Program.cs

var r = new Random(); int n = r.Next(-5, 5);Console.WriteLine(n);if (n < 0) {Console.WriteLine("The n variable is negative"); } else if (n == 0) {Console.WriteLine("The n variable is zero");} else {Console.WriteLine("The n variable is positive"); }

以前的程序有一個小問題。零被賦予負值。以下程序將解決此問題。

if (n < 0) {Console.WriteLine("The n variable is negative"); } else if (n == 0) {Console.WriteLine("The n variable is zero"); } else {Console.WriteLine("The n variable is positive"); }

????????如果第一個條件評估為真,例如輸入的值小于零,執行第一個程序段,跳過剩余的兩個程序段。如果不滿足第一個條件,則檢查 if else 關鍵字之后的第二個條件。如果第二個條件為真,則執行第二個塊。如果不是,則執行 else 關鍵字之后的第三個塊。如果不滿足先前的條件,則始終執行 else 塊。

$ dotnet run -1 The n variable is negative $ dotnet run 4 The n variable is positive $ dotnet run 1 The n variable is positive $ dotnet run 0 The n variable is zero

我們執行程序 3 次。 0 被正確處理。

四、C# switch表達式

????????switch 語句是一個選擇控制流語句。它允許變量或表達式的值通過多路分支控制程序執行流程。它以比使用 if/else if/else 語句組合更簡單的方式創建多個分支。

????????我們有一個變量或表達式。 switch 關鍵字用于根據值列表測試變量或表達式中的值。值列表與 case 關鍵字一起顯示。如果值匹配,則執行 case 后面的語句。有一個可選的默認語句。如果沒有找到其他匹配項,則執行它。

從 C# 7.0 開始,匹配表達式可以是任何非空表達式。

switch 語句相當復雜。

4.1 Selecting day of week

在以下示例中,我們選擇帶有 switch 語句的星期幾。

Program.cs

var dayOfWeek = DateTime.Now.DayOfWeek;switch (dayOfWeek) {case DayOfWeek.Sunday:Console.WriteLine("dies Solis");break;case DayOfWeek.Monday:Console.WriteLine("dies Lunae");break;case DayOfWeek.Tuesday:Console.WriteLine("dies Martis");break;case DayOfWeek.Wednesday:Console.WriteLine("dies Mercurii");break;case DayOfWeek.Thursday:Console.WriteLine("dies Jovis");break;case DayOfWeek.Friday:Console.WriteLine("dies Veneris");break;case DayOfWeek.Saturday:Console.WriteLine("dies Saturni");break; }

該示例確定當前星期幾并打印其拉丁語等價物。

switch (dayOfWeek) {... }

????????在圓括號中,switch 關鍵字從表達式中獲取一個值,該表達式將被測試。 switch 關鍵字的正文放置在一對或大括號內。在正文中,我們可以放置多個案例選項。每個選項都以 break 關鍵字結尾。

case DayOfWeek.Sunday:Console.WriteLine("dies Solis");break;

????????使用 case 語句,我們測試匹配表達式的值。如果它等于 DayOfWeek.Sunday,我們打印拉丁文 dies Solis。

$ dotnet run dies Solis 該計劃于周日運行。

4.2 Selecting domain

????????要求用戶輸入域名。域名被讀取并存儲在一個變量中。該變量使用 switch 關鍵字針對選項列表進行測試。

Program.cs

Console.Write("Enter a domain name: ");string domain = Console.ReadLine();domain = domain.Trim().ToLower();switch (domain) {case "us":Console.WriteLine("United States");break;case "de":Console.WriteLine("Germany");break;case "sk":Console.WriteLine("Slovakia");break;case "hu":Console.WriteLine("Hungary");break;default:Console.WriteLine("Unknown");break; }

在我們的程序中,我們有一個域變量。我們從命令行讀取變量的值。我們使用 case 語句來測試變量的值。有幾種選擇。例如,如果該值等于“us”,則“United States”字符串將打印到控制臺。

string domain = Console.ReadLine();

Input from the user is read from the console.

domain = domain.Trim().ToLower();

Trim 方法從潛在的前導和尾隨空格中去除變量。 ToLower 將字符轉換為小寫。現在“us”、“US”、“us”是美國域名的可行選項。

case "us":Console.WriteLine("United States"); break;

????????在這種情況下,我們測試域變量是否等于“us”字符串。如果為真,我們會向控制臺打印一條消息。該選項以 break 關鍵字結尾。如果成功評估了其中一個選項,break 關鍵字將終止 switch 塊。

default:Console.WriteLine("Unknown"); break;

默認關鍵字是可選的。如果沒有評估任何案例選項,則執行默認部分。

$ dotnet run Enter a domain name: us United States$ dotnet run Enter a domain name: HU Hungary$ dotnet run Enter a domain name: pl Unknown

4.3 應用when 表達式

case 語句可以與 when 語句一起使用來指定附加條件。

Program.cs

Console.Write("Enter your age: ");var input = Console.ReadLine();var age = Int32.Parse(input.Trim());switch (age) {case var myAge when myAge < 0:Console.WriteLine("Age cannot be a negative value");break;case var myAge when myAge > 130:Console.WriteLine("This is an unlikely high age");break;default:Console.WriteLine("The entered age is {0}", age);break; }

在程序中,要求用戶輸入他的年齡。

case var myAge when myAge < 0:Console.WriteLine("Age cannot be a negative value"); break;

????????在 when 表達式的幫助下,我們測試輸入的值是否小于 0。使用 var 關鍵字,我們創建一個臨時的 myAge 變量。

4.4 枚舉算數表達式

對于匹配表達式,我們可以使用任何類型。在下面的示例中,我們使用枚舉。

Program.cs

var color = (Color) (new Random()).Next(0, 7);switch (color) {case Color.Red:Console.WriteLine("The color is red");break;case Color.Green:Console.WriteLine("The color is green");break;case Color.Blue:Console.WriteLine("The color is blue");break;case Color.Brown:Console.WriteLine("The color is brown");break;case Color.Yellow:Console.WriteLine("The color is yellow");break;case Color.Pink:Console.WriteLine("The color is pink");break;case Color.Orange:Console.WriteLine("The color is orange");break;default:Console.WriteLine("The color is unknown.");break; }enum Color { Red, Green, Blue, Brown, Yellow, Pink, Orange }

該示例隨機生成一個顏色枚舉。 swith 語句確定生成的顏色值。

$ dotnet run The color is orange$ dotnet run The color is blue$ dotnet run The color is brown

We run the program.

4.5 Switch表達式

Switch 表達式使 switch 語句的語法更加簡潔。它們是在 C# 8.0 中引入的。

Program.cs

Console.Write("Enter a domain name: ");string domain = Console.ReadLine();domain = domain.Trim().ToLower();string result = domain switch {"us" => "United States","de" => "Germany","sk" => "Slovakia","hu" => "Hungary",_ => "Unknown" };Console.WriteLine(result);

該變量位于 switch 關鍵字之前。 case?和?:?元素被替換為?=>。默認大小寫替換為 _ 丟棄。主體是表達式,而不是語句。

4.6 C# while 表達式

while 語句是一種控制流語句,允許根據給定的布爾條件重復執行代碼。

while (expression) {statement; }

while 關鍵字執行大括號括起來的塊內的語句。每次表達式被評估為真時,都會執行這些語句。

Program.cs

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

在代碼示例中,我們計算一系列數字中的值的總和。

while 循環包含三個部分。初始化、測試和更新。語句的每次執行稱為一個循環。

int i = 0;

我們啟動 i 變量。它用作計數器。

while (i < 10) {... }

while 關鍵字后面的圓括號內的表達式是第二階段,即測試。執行主體中的語句,直到表達式被評估為假。

i++;

這是 while 循環的最后一個第三階段,即更新。我們增加計數器。請注意,對 while 循環的不當處理可能會導致無限循環。

4.7 Do-while 表達

可以至少運行該語句一次。即使條件不滿足。為此,我們可以使用 do while 關鍵字。

Program.cs

int count = 0;do {Console.WriteLine(count); } while (count != 0);

首先執行塊,然后評估真值表達式。在我們的例子中,條件不滿足,do while 語句終止。

五、C# for 表達式

????????如果在循環開始之前知道循環數,我們可以使用 for 語句。在這個結構中,我們聲明了一個計數器變量,它在每次循環重復期間自動增加或減少值。

5.1?簡單的for循環

for 循環具有三個階段:初始化、條件和代碼塊執行以及增量。

Program.cs

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

在此示例中,我們將數字 0..9 打印到控制臺。

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

分為三個階段。在第一階段,我們將計數器 i 設為零。這個階段只進行一次。接下來是條件。如果滿足條件,則執行 for 塊內的語句。在第三階段,計數器增加。現在我們重復2、3階段,直到條件不滿足,退出for循環。在我們的例子中,當計數器 i 等于 10 時,for 循環停止執行。

5.2??for循環數組遍歷

for 循環可用于遍歷數組。根據數組的 Length 屬性,我們知道數組的大小。

Program.cs

string[] planets = { "Mercury", "Venus", "Earth","Mars", "Jupiter", "Saturn", "Uranus", "Pluto" };for (int i = 0; i < planets.Length; i++) {Console.WriteLine(planets[i]); }Console.WriteLine("In reverse:");for (int i = planets.Length - 1; i >= 0; i--) {Console.WriteLine(planets[i]); }

????????我們有一個包含太陽系中行星名稱的數組。使用兩個 for 循環,我們按升序和降序打印值。

for (int i = 0; i < planets.Length; i++) {Console.WriteLine(planets[i]); }

????????通過從零開始的索引訪問數組。第一項的索引為 0。因此,變量 i 被初始化為零。該條件檢查 i 變量是否小于數組的長度。在最后階段,i 變量遞增。

for (int i = planets.Length - 1; i >= 0; i--) {Console.WriteLine(planets[i]); }

????????這個 for 循環以相反的順序打印數組的元素。 i 計數器初始化為數組大小。由于索引是從零開始的,因此最后一個元素的索引數組大小為 1。該條件確保計數器大于或等于零。 (數組索引不能為負數)。在第三步中,i 計數器減一。

5.3 更多 for loop表達式

More expressions can be placed in the initialization and iteration phase of the for loop.

Program.cs

var r = new Random(); var values = new int[10];int sum = 0; int num = 0;for (int i = 0; i < 10; i++, sum += num) {num = r.Next(10);values[i] = num; }Console.WriteLine(string.Join(",", values)); Console.WriteLine("The sum of the values is {0}", sum);

在我們的示例中,我們創建了一個包含十個隨機數的數組。計算數字的總和。

for (int i = 0; i < 10; i++, sum += num) {num = r.Next(10);values[i] = num; }

在 for 循環的第三部分,我們有兩個用逗號分隔的表達式。 i 計數器遞增并將當前數字添加到 sum 變量。

Console.WriteLine(string.Join(",", values));

使用 System.String 類的 Join 方法,我們一次性打印出數組的所有值。它們將用逗號分隔。

$ dotnet run 9,3,1,7,9,8,5,6,3,3 The sum of the values is 54

5.4?嵌套 for 循環

for 語句可以嵌套;即一個 for 語句可以放在另一個 for 語句中。嵌套 for 循環的所有循環都針對外部 for 循環的每個循環執行。

Program.cs

var a1 = new string[] { "A", "B", "C" }; var a2 = new string[] { "A", "B", "C" };for (int i=0; i<a1.Length; i++) {for (int j=0; j<a2.Length; j++){Console.WriteLine(a1[i] + a2[j]);} }

在此示例中,我們創建兩個數組的笛卡爾積。

var a1 = new string[] { "A", "B", "C" }; var a2 = new string[] { "A", "B", "C" };

我們有兩個數組。每個數組都有樹字母。 caresian 乘積是當一個數組中的每個元素與另一個數組的所有元素配對時。為此,我們使用嵌套的 for 循環。

for (int i=0; i<a1.Length; i++) {for (int j=0; j<a2.Length; j++){Console.WriteLine(a1[i] + a2[j]);} }

在另一個父 for 循環內有一個嵌套 for 循環。對于父 for 循環的每個循環,嵌套的 for 循環都會完全執行。

$ dotnet run AA AB AC BA BB BC CA CB CC

六、 C# foreach表達式

foreach 結構簡化了對數據集合的遍歷。它沒有明確的計數器。 foreach 語句一一遍歷數組或集合,并將當前值復制到構造中定義的變量中。

Program.cs

string[] planets = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune" };foreach (string planet in planets) {Console.WriteLine(planet); }

在此示例中,我們使用 foreach 語句遍歷一系列行星。

foreach (string planet in planets) {Console.WriteLine(planet); }

foreach 語句的用法很簡單。行星是我們迭代的數組。行星是一個臨時變量,具有數組中的當前值。 foreach 語句遍歷所有行星并將它們打印到控制臺。

$ dotnet run Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune

七、C# break 表達式

break 語句可用于終止由 while、for 或 switch 語句定義的塊。

Program.cs

var random = new Random();while (true) {int num = random.Next(1, 30);Console.Write("{0} ", num);if (num == 22){break;} }Console.Write('\n');

我們定義了一個無限的 while 循環。我們使用 break 語句來擺脫這個循環。我們從 1 到 30 中選擇一個隨機值。我們打印該值。如果該值等于 22,我們將結束無限的 while 循環。

$ dotnet run 18 3 21 26 12 27 23 25 2 21 15 4 18 12 24 13 7 19 10 26 5 22

八、C# continue 表達式

continue 語句用于跳過循環的一部分并繼續循環的下一次迭代。它可以與 for 和 while 語句結合使用。

在下面的示例中,我們打印一個不能被 2 除而沒有余數(奇數)的數字列表。

Program.cs

int num = 0;while (num < 1000) {num++;if (num % 2 == 0){continue;}Console.Write($"{num} "); }Console.Write('\n');

我們使用 while 循環遍歷數字 1..999。

if (num % 2 == 0) {continue; }

如果表達式 num % 2 返回 0,則所討論的數字可以除以 2。執行 continue 語句并跳過循環的其余部分。在我們的例子中,循環的最后一條語句被跳過并且數字不會打印到控制臺。下一次迭代開始。

總結

以上是生活随笔為你收集整理的C#教程6:流控制语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。