C#快速入門教程(12)—— if語句結構
前面的課程,討論了C#和.NET Framework中的基本資料型別,接下來的幾課,我們將討論程式碼流程控制的一些語句結構。本課將首先討論條件語句,也就是if語句結構。
最簡單的if語句格式如下。
if (<條件表示式>)
{
<語句塊>
}
這裡,<條件表示式>的運算結果應該是bool型別的值,當其值為true時,執行<語句塊>的程式碼,否則直接執行if語句結構之後的程式碼(如果還有程式碼^_^)。如下面的程式碼。
static void Main(string[] args)
{
int x = 10;
if (x % 2 == 0)
{
Console.WriteLine("偶數");
}
}
程式碼執行會顯示“偶數”。像這種在if語句結構中只有一條語句的情況,還可以簡化,如下面的兩種方式。
if (x % 2 == 0)
Console.WriteLine("偶數");
或
if (x % 2 == 0) Console.WriteLine("偶數");
當然,if語句結構中的語句塊有多條語句時,就必須使用一對花括號將它們組織起來。
如果需要在條件不成立時也執行一定的程式碼,可以新增else語句塊,如下面的格式。
if (<條件表示式>)
{
<語句塊1>
}
else
{
<語句塊2>
}
在這個結構中,如果<條件表示式>的值是true,就執行<語句塊1>;否則執行<語句塊2>。如下面的程式碼。
static void Main(string[] args)
{
int x = 99;
if (x % 2 == 0)
{
Console.WriteLine("偶數");
}
else
{
Console.WriteLine("奇數");
}
}
程式碼執行結果會顯示“奇數”。同樣的,當需要執行的只有一條語句時,也可以進行簡寫,如下面的兩種方式。
if (x % 2 == 0)
Console.WriteLine("偶數");
else
Console.WriteLine("奇數");
或
if (x % 2 == 0) Console.WriteLine("偶數");
else Console.WriteLine("奇數");
下面,我們來看if語句結構的完整語法。
if (<條件表示式1>)
{
<語句塊1>
}
else if (<條件表示式2>)
{
<語句塊2>
}
else if (<條件表示式N>)
{
<語句塊N>
}
else
{
<語句塊N+1>
}
在這個結構中,如果<條件表示式1>成立則執行<語句塊1>;否則,如果<條件表示式2>成員執行<語句塊2>;否則,如果<條件表示式N>成員執行<語句塊N>;如果所有條件都不成立則執行<語句塊N+1>。
實際應用中,else if語句塊可以有一個或多個,也可以沒有;而else語句塊同樣可有可無,只是需要注意,else語句塊必須在所有else if語句塊之後。
下面的程式碼,我們使用數值表示不同方向,然後使用if語句塊進行判斷。
static void Main(string[] args)
{
int dir = 1;
if (dir == 1)
{
Console.WriteLine("上");
}
else if (dir == 2)
{
Console.WriteLine("右");
}
else if (dir == 3)
{
Console.WriteLine("下");
}
else if (dir == 4)
{
Console.WriteLine("左");
}
else
{
Console.WriteLine("未知方向");
}
}
程式碼執行會顯示“上”,大家可修改dir的值來檢視輸出結果。
if語句結構的使用是靈活多變的,大家可以後續的學習和工作中逐漸掌握;下面的程式碼,我們再來看一個複雜的條件判斷。
static void Main(string[] args)
{
int year = 2018;
if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0)
{
Console.WriteLine("{0}年是閏年", year);
}
else
{
Console.WriteLine("{0}年不是閏年", year);
}
}
本例中,我們使用了一個複合條件來判斷一個年份是否為閏年,單獨來看一下。
year % 400 == 0 || year % 100 != 0 && year % 4 == 0
也許大家對條件判斷的邏輯看不太清楚,我們使用括號進行分組再看,如下面的程式碼。
(year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)
當一個年份是閏年時,可以通過兩個條件來判斷,首先,如果年份能被400整除,即年份除以400的餘數為0時,這個年份就是閏年;另一個條件,當年份不能被100整除,並且可以被4整除時,這個年份也是閏年。也就是說,這兩個條件有一個滿足,指定的年份就是閏年,大家可以修改year變數的值來觀察執行結果。
實際上,對於閏年的判斷,我們可以直接使用DateTime.IsLeapYear()方法,如下面的程式碼。
static void Main(string[] args)
{
int year = 2018;
string yesNo = DateTime.IsLeapYear(year) ? "是" : "不是";
Console.WriteLine("{0}年{1}閏年", year, yesNo);
}
程式碼中沒有使用if語句結構?!是的。
首先,year變數還是儲存年份值;再看yesNo變數的值是如何獲取的,這裡,我們使用了C#中唯一的一個三元運算子(需要三個運算數),即?:運算子,其格式如下:
<條件表示式> ? <表示式1> : <表示式2>
當<條件表示式>的值是true時,運算結果就是<表示式1>的值,否則返回<表示式2>的值;回到前面的示例中,<條件表示式>就是使用DateTime.IsLeapYear()方法來判斷年份是否為閏年,根據結果返回“是”或“不是”;最後,我們直接對輸入資訊進行組合,只需要一條語句就可以顯示是閏年或不是閏年的兩種情況。
?:運算子可以替代簡單的if...else...語句結構,大家可以根據實際情況選擇使用。
向左走、向右走,你的程式碼你作主!if語句是程式碼流程控制最基本的語句結構之一,在程式碼編寫過程中,可以靈活多變得應用,大家應在實踐中多練習、多思考,以便熟練掌握其應用特點。
CHY軟體小屋原創作品!
相關文章
- C#快速入門教程(13)—— switch語句結構C#
- C#快速入門教程(14)—— 迴圈語句結構C#
- C#快速入門教程(23)—— using語句和IDisposable介面C#
- Go快速入門 03 | 控制結構:if、for、switch 邏輯語句Go
- C# 12 Blazor入門教程C#Blazor
- 《C#快速入門教程》目錄C#
- C#快速入門教程(16)—— 介面C#
- C#快速入門教程(6)——方法C#
- go語言快速入門教程Go
- C#快速入門教程(26)—— 繪圖C#繪圖
- C#快速入門教程(21)—— 泛型C#泛型
- C#快速入門教程(15)—— 繼承C#繼承
- C#快速入門教程(8)——整數C#
- 2020-12-30 Python入門(控制語句)Python
- C++入門教程(9):while 語句C++While
- C#快速入門教程(28)—— ADO.NETC#
- C#快速入門教程(25)—— 日期與時間C#
- C#快速入門教程(22)—— 常用集合型別C#型別
- C#快速入門教程(30)—— 繼續學習C#
- C#快速入門教程(18)—— 異常處理C#
- C++入門教程(3):語句和縮排C++
- C#快速入門教程(27)—— SQL Server資料庫C#SQLServer資料庫
- C#快速入門教程(19)—— 索引器與陣列C#索引陣列
- C#快速入門教程(5)——欄位與屬性C#
- C#快速入門教程(11)—— 字元和字串型別C#字元字串型別
- C#快速入門教程(7)——資料型別概述C#資料型別
- C#快速入門教程(2)——程式碼與測試C#
- python 語法總結:Python語法快速入門Python
- C#程式語言及.NET 平臺快速入門指南C#
- golang快速入門(六)特有程式結構Golang
- C#快速入門教程(29)—— ADO.NET離線元件與資料繫結C#元件
- C#快速入門教程(20)—— 字串與正規表示式C#字串
- C#快速入門教程(4)——類成員的作用域C#
- C#快速入門教程(1)——物件導向程式設計C#物件程式設計
- Materialize快速入門教程
- Flutter小白教程系列(三) --- Dart語言快速入門FlutterDart
- 2.語句結構
- C語言快速入門教程1快速入門 2指令 3條件選擇C語言