第六單元 流程式控制制

来源:https://www.cnblogs.com/xuyubing/archive/2023/05/30/17442318.html
-Advertisement-
Play Games

C# 流程語句分為:順序結構,選擇結構,迴圈結構。 1. 順序結構 順序結構指的是程式一步步向下執行。 int a =10; int b =a; a++; 2. 選擇結構 C# 提供以下類型的選擇語句。 聲明描述 if聲明 一個if語句包含一個布爾表達式後跟一個或多個語句。 if...else聲明 ...


C# 流程語句分為:順序結構,選擇結構,迴圈結構。

1. 順序結構

順序結構指的是程式一步步向下執行。

int a =10;
int b =a;
a++;

2. 選擇結構

C# 提供以下類型的選擇語句。

聲明描述
if聲明 一個if語句包含一個布爾表達式後跟一個或多個語句。
if...else聲明 一個if語句可以跟著一個可選的else語句,當布爾表達式是假的,其執行。
嵌套if語句 您可以在另一個if or else if語句中使用一個if or else if語句。
switch語句 switch語句允許一個變數來針對值的列表平等進行測試。
嵌套的switch語句 您可以在另一個switch語句中使用一個switch語句。

if ... else

condition1

if .. else 語法

if(bool 表達式)
{
    ... 
}
else if(bool 表達式) // 可選的
{
    ...
}
else  // 可選的
{
    ...
}

例1:

int score =90;
if(score >= 60)
{
    Console.WriteLine("及格");
}
else
{
    Console.WriteLine("不及格");
}

例2:

static void Main(string[] args)
{
    int a = 90;
    Console.WriteLine(GetGrade(a));
}
​
public static string GetGrade(int score)
{
    if (score>=60)
    {
        return "及格";
    }
    else
    {
        return "不及格";
    }
}
// 簡寫
public static string GetGrade(int score)
{
    if (score>=60)
    {
        return "及格";
    }
    return "不及格";
}

 

例3:

static void Main(string[] args)
{
    int a = 90;
    Console.WriteLine(GetGrade(a));
}

public static string GetGrade(int score)
{
    if (score<60)
    {
        return "不及格";
    }
    else if(score>=60 && score<=70)
    {
        return "一般";
    }
    else if (score > 70 && score <= 80)
    {
        return "良好";
    }
    else
    {
        return "優秀";
    }
}

 

如果if 或者 else 後面 只有一條語句,則 “{}” 可以省略,但一般不建議省略

if (score<60)
     return "不及格";

? : 運算符

我們已經在前面的章節中講解了 條件運算符 ? :,可以用來替代 if...else 語句。它的一般形式如下:

Exp1 ? Exp2 : Exp3;

其中,Exp1、Exp2 和 Exp3 是表達式。請註意,冒號的使用和位置。

? 表達式的值是由 Exp1 決定的。如果 Exp1 為真,則計算 Exp2 的值,結果即為整個 ? 表達式的值。如果 Exp1 為假,則計算 Exp3 的值,結果即為整個 ? 表達式的值。

switch...case

一個 switch 語句允許測試一個變數等於多個值時的情況。每個值稱為一個 case,且被測試的變數會對每個 switch case 進行檢查。

C# 中 switch 語句的語法:

switch(expression){
    case constant-expression  :
       statement(s);
       break; 
    case constant-expression  :
       statement(s);
       break; 
  
    /* 您可以有任意數量的 case 語句 */
    default : /* 可選的 */
       statement(s);
       break; 
}

switch 語句必須遵循下麵的規則:

  • switch 語句中的 expression 必須是一個整型或枚舉類型,或者是一個 class 類型,其中 class 有一個單一的轉換函數將其轉換為整型或枚舉類型。

  • 在一個 switch 中可以有任意數量的 case 語句。每個 case 後跟一個要比較的值和一個冒號。

  • case 的 constant-expression 必須與 switch 中的變數具有相同的數據類型,且必須是一個常量。

  • 當被測試的變數等於 case 中的常量時,case 後跟的語句將被執行,直到遇到 break 語句為止。

  • 當遇到 break 語句時,switch 終止,控制流將跳轉到 switch 語句後的下一行。

  • 不是每一個 case 都需要包含 break。如果 case 語句為空,則可以不包含 break,控制流將會 繼續 後續的 case,直到遇到 break 為止。

  • C# 不允許從一個 case 部分繼續執行到下一個 case 部分。如果 case 語句中有已經執行,則必須包含 break 或其他跳轉語句。

  • 一個 switch 語句可以有一個可選的 default 語句,在 switch 的結尾。default 語句用於在上面所有 case 都不為 true 時執行的一個任務。default 也需要包含 break 語句,這是一個良好的習慣。

  • C# 不支持從一個 case 標簽顯式貫穿到另一個 case 標簽。如果要使 C# 支持從一個 case 標簽顯式貫穿到另一個 case 標簽,可以使用 goto 一個 switch-case 或 goto default。

C# 中的 switch 語句

實例

以下實例用於判斷當前是星期幾:

static void Main(string[] args)
{
    int day = 4;
    switch (day) // 數字,字元串,枚舉
    {
        case 1:  // 只能寫常量 
            Console.WriteLine("Monday");
            break;
        case 2:
            Console.WriteLine("Tuesday");
            break;
        case 3:
            Console.WriteLine("Wednesday");
            break;
        case 4:
            Console.WriteLine("Thursday");
            break;
        case 5:
            Console.WriteLine("Friday");
            break;
        case 6:
            Console.WriteLine("Saturday");
            break;
        case 7:
            Console.WriteLine("Sunday");
            break;
        default:
            Console.WriteLine("Sunday");
            break;
    }    
}

C# 8.0 可將switch 進行優化:

static void Main(string[] args)
{
    int day =4;
    string week = day switch
    {
            1=>"Monday",
            2=>"Tuesday",
            3=>"Wednesday",
            4=>"Thursday",
            5=>"Friday",
            6=>"Saturday",
            7=>"Sunday",
            _=>"Sunday" // 預設
    };
    Console.WriteLine(week);
}

 

執行結果根據當天日期有所不同,我這裡執行這天的結果為:

Thursday

C# 9.0 藉助於模式匹配

// c# 9.0 : 模式匹配,結合switch
int score = 88;
string result = score switch
{
    >0 and <60 => "不及格",
    >=60 and <=69 => "合格",
    >=70 and <=79 => "中等",
    >=80 and <=89 => "",
    _ => "優秀"
};
Console.WriteLine(result);

以下實例判斷學生的成績,包含了 default 語句:

static void Main(string[] args)
{
    /* 局部變數定義 */
    char grade = 'B';

    switch (grade)
    {
        case 'A':
            Console.WriteLine("很棒!");
            break;
        case 'B':
        case 'C':
            Console.WriteLine("做得好");
            break;
        case 'D':
            Console.WriteLine("您通過了");
            break;
        case 'F':
            Console.WriteLine("最好再試一下");
            break;
        default:
            Console.WriteLine("無效的成績");
            break;
    }
    Console.WriteLine("您的成績是 {0}", grade);
    Console.ReadLine();
}

 

當上面的代碼被編譯和執行時,它會產生下列結果:

做得好
您的成績是 B

if 與 switch 的區別

一:從“優缺點”分析 if…else 優點:使用靈活,代碼空間小 ;

缺點:效率低,因為 if else 必須遍歷所有的可能值;

switch…case 優點:代碼結構清晰,效率高;

C# 9.0 以後,已經完全可以代替if else 結構了。

 

強化練習

  1. 業務場景:消費者在圖書商城購買圖書,下單後需要在支付頁面顯示訂單優惠後的價格。具體優惠規則如下:

規則編號規則名稱描述
1 規則一 所購圖書總價在100元以下的沒有優惠
2 規則二 所購圖書總價在100到200元的優惠20元
3 規則三 所購圖書總價在200到300元的優惠50元
4 規則四 所購圖書總價在300元以上的優惠100元

現在需要根據上面的規則計算優惠後的價格。

// 表示購物金額
int money = 666;
// 所購圖書總價在100元以下的沒有優惠
if (money < 100)
{
    money = money;
}
else if (money >= 100 && money <= 200)
{
    //所購圖書總價在100到200元的優惠20元
    money -= 20;
}
else if (money>200 && money<=300)
{
    money -= 50;
}
else
{
    money -= 100;
}

Console.WriteLine(money);

// switch 精簡代碼 
// ...大家自行補上

3. 迴圈結構

1. 為什麼需要迴圈結構

例如:求1-10之間的和

int sum = 1+2+3+4+5+6+7+8+9+10;

如是讓你:求 1-1000之間的和。你該怎麼辦?此時就需要用到迴圈結構來解決這個問題。

2. 什麼是迴圈結構

有的時候,可能需要多次執行同一塊代碼。一般情況下,語句是順序執行的:函數中的第一個語句先執行,接著是第二個語句,依此類推。

編程語言提供了允許更為複雜的執行路徑的多種控制結構。

迴圈語句允許我們多次執行一個語句或語句組,下麵是大多數編程語言中迴圈語句的一般形式:

迴圈結構

3. 迴圈類型

C# 提供了以下幾種迴圈類型。點擊鏈接查看每個類型的細節。

迴圈類型描述
while 迴圈 當給定條件為真時,重覆語句或語句組。它會在執行迴圈主體之前測試條件。
for 多次執行一個語句序列,簡化管理迴圈變數的代碼。
do...while 迴圈 除了它是在迴圈主體結尾測試條件外,其他與 while 語句類似。
嵌套迴圈 您可以在 while、for 或 do..while 迴圈內使用一個或多個迴圈。
foreach 迴圈 對一個集合或者數組進行迴圈遍歷

4. 迴圈控制語句

迴圈控制語句更改執行的正常序列。當執行離開一個範圍時,所有在該範圍中創建的自動對象都會被銷毀。

C# 提供了下列的控制語句。點擊鏈接查看每個語句的細節。

控制語句描述
break 語句 終止 loopswitch 語句,程式流將繼續執行緊接著 loop 或 switch 的下一條語句。
continue 語句 引起迴圈跳過主體的剩餘部分,立即重新開始測試條件。

5. while 迴圈

只要給定的條件為真,C# 中的 while 迴圈語句會重覆執行一個目標語句。

語法

C# 中 while 迴圈的語法:

while(condition)
{
   statement(s);
}

 

在這裡,statement(s) 可以是一個單獨的語句,也可以是幾個語句組成的代碼塊。condition 可以是任意的表達式,當為任意非零值時都為真。當條件為真時執行迴圈。

當條件為假時,程式流將繼續執行緊接著迴圈的下一條語句。

C# 中的 while 迴圈

在這裡,while 迴圈的關鍵點是迴圈可能一次都不會執行。當條件被測試且結果為假時,會跳過迴圈主體,直接執行緊接著 while 迴圈的下一條語句。

static void Main(string[] args)
{
    /* 局部變數定義 */
    int a = 10;

    /* while 迴圈執行 */
    while (a < 20)
    {
        Console.WriteLine("a 的值: {0}", a);
        a++;
    }
    Console.ReadLine();
}

 

當上面的代碼被編譯和執行時,它會產生下列結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

  

6. for 迴圈

一個 for 迴圈是一個允許您編寫一個執行特定次數的迴圈的重覆控制結構。

C# 中 for 迴圈的語法:

for ( init; condition; increment )
{
   statement(s);
}

  

下麵是 for 迴圈的控制流:

  1. init 會首先被執行,且只會執行一次。這一步允許您聲明並初始化任何迴圈控制變數。您也可以不在這裡寫任何語句,只要有一個分號出現即可。

  2. 接下來,會判斷 condition。如果為真,則執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到緊接著 for 迴圈的下一條語句。

  3. 在執行完 for 迴圈主體後,控制流會跳回上面的 increment 語句。該語句允許您更新迴圈控制變數。該語句可以留空,只要在條件後有一個分號出現即可。

  4. 條件再次被判斷。如果為真,則執行迴圈,這個過程會不斷重覆(迴圈主體,然後增加步值,再然後重新判斷條件)。在條件變為假時,for 迴圈終止。

C# 中的 for 迴圈

實例:求1-100的和

static void Main(string[] args)
{
    int sum =0;
    /* for 迴圈執行 */
    for (int a = 1; a <= 100; a = a + 1)
    {
        sum+=a;// sum = sum +a;
    }
    Console.WriteLine(sum) ;
    Console.ReadLine();
}

輸出結果:

5050

7. do...while 迴圈

不像 forwhile 迴圈,它們是在迴圈頭部測試迴圈條件。do...while 迴圈是在迴圈的尾部檢查它的條件。

do...while 迴圈與 while 迴圈類似,但是 do...while 迴圈會確保至少執行一次迴圈。

C# 中 do...while 迴圈的語法:

do
{
   statement(s);

}while( condition );

請註意,條件表達式出現在迴圈的尾部,所以迴圈中的 statement(s) 會在條件被測試之前至少執行一次。

如果條件為真,控制流會跳轉回上面的 do,然後重新執行迴圈中的 statement(s)。這個過程會不斷重覆,直到給定條件變為假為止。

流程圖

C# 中的 do...while 迴圈

static void Main(string[] args)
{
    /* 局部變數定義 */
    int a = 10;

    /* do 迴圈執行 */
    do
    {
        Console.WriteLine("a 的值: {0}", a);
        a = a + 1;
    } while (a < 20);

    Console.ReadLine();
}

 

當上面的代碼被編譯和執行時,它會產生下列結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

  

8. 迴圈控制語句

迴圈控制語句更改執行的正常序列。當執行離開一個範圍時,所有在該範圍中創建的自動對象都會被銷毀。

C# 提供了下列的控制語句。點擊鏈接查看每個語句的細節。

控制語句描述
break 語句 終止 loopswitch 語句,程式流將繼續執行緊接著 loop 或 switch 的下一條語句。
continue 語句 引起迴圈跳過主體的剩餘部分,立即重新開始測試條件。

break

C# 中 break 語句有以下兩種用法:

  1. break 語句出現在一個迴圈內時,迴圈會立即終止,且程式流將繼續執行緊接著迴圈的下一條語句。

  2. 它可用於終止 switch 語句中的一個 case。

如果您使用的是嵌套迴圈(即一個迴圈內嵌套另一個迴圈),break 語句會停止執行最內層的迴圈,然後開始執行該塊之後的下一行代碼。

C# 中的 break 語句

實例

static void Main(string[] args)
{
    /* 局部變數定義 */
    int a = 10;

    /* while 迴圈執行 */
    while (a < 20)
    {
        Console.WriteLine("a 的值: {0}", a);
        a++;
        if (a > 15)
        {
            /* 使用 break 語句終止 loop */
            break;
        }
    }
    Console.ReadLine();
}

 

當上面的代碼被編譯和執行時,它會產生下列結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15

continue

C# 中的 continue 語句有點像 break 語句。但它不是強迫終止,continue 會跳過當前迴圈中的代碼,強迫開始下一次迴圈。

對於 for 迴圈,continue 語句會導致執行條件測試和迴圈增量部分。對於 whiledo...while 迴圈,continue 語句會導致程式控制回到條件測試上。

C# 中的 continue 語句

static void Main(string[] args)
{
    /* 局部變數定義 */
    int a = 10;

    /* do 迴圈執行 */
    do
    {
        if (a == 15)
        {
            /* 跳過迭代 */
            a = a + 1;
            continue;
        }
        Console.WriteLine("a 的值: {0}", a);
        a++;

    } while (a < 20);

    Console.ReadLine();
}

 

當上面的代碼被編譯和執行時,它會產生下列結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

  

9. 嵌套迴圈

C# 允許在一個迴圈內使用另一個迴圈,下麵演示幾個實例來說明這個概念。

語法

C# 中 嵌套 for 迴圈 語句的語法:

for ( init; condition; increment )
{
   for ( init; condition; increment )
   {
      statement(s);
   }
   statement(s);
}

  

C# 中 嵌套 while 迴圈 語句的語法:

while(condition)
{
   while(condition)
   {
      statement(s);
   }
   statement(s);
}

  

C# 中 嵌套 do...while 迴圈 語句的語法:

do
{
   statement(s);
   do
   {
      statement(s);
   }while( condition );
​
}while( condition );

  

關於嵌套迴圈有一點值得註意,您可以在任何類型的迴圈內嵌套其他任何類型的迴圈。比如,一個 for 迴圈可以嵌套在一個 while 迴圈內,反之亦然。

實例:列印9 * 9乘法表

for (int i = 1; i < 10; i++)
{
    for (int j = i; j < 10; j++) // j=i,可以避免 1* 9 和 9 * 1 這種重覆情況
    {
        Console.WriteLine($"{i} * {j} = {i * j}");
    }
}

 

優化輸出, 列印三次之後才換行:

int index = 0;
for (int i = 1; i < 10; i++)
{
    for (int j = i; j < 10; j++)
    {
        if ((index++) %3 ==0)
        {
            Console.WriteLine("\n");// 換行
        }
        Console.Write($"{i} * {j} = {i*j}\t");
    }
}

 

輸出結果:

1 * 1 = 1       1 * 2 = 2       1 * 3 = 3
1 * 4 = 4       1 * 5 = 5       1 * 6 = 6
1 * 7 = 7       1 * 8 = 8       1 * 9 = 9
2 * 2 = 4       2 * 3 = 6       2 * 4 = 8
2 * 5 = 10      2 * 6 = 12      2 * 7 = 14
2 * 8 = 16      2 * 9 = 18      3 * 3 = 9
3 * 4 = 12      3 * 5 = 15      3 * 6 = 18
3 * 7 = 21      3 * 8 = 24      3 * 9 = 27
4 * 4 = 16      4 * 5 = 20      4 * 6 = 24
4 * 7 = 28      4 * 8 = 32      4 * 9 = 36
5 * 5 = 25      5 * 6 = 30      5 * 7 = 35
5 * 8 = 40      5 * 9 = 45      6 * 6 = 36
6 * 7 = 42      6 * 8 = 48      6 * 9 = 54
7 * 7 = 49      7 * 8 = 56      7 * 9 = 63
8 * 8 = 64      8 * 9 = 72      9 * 9 = 81

  

10. 無限迴圈(死迴圈)

如果條件永遠不為假,則迴圈將變成無限迴圈。for 迴圈在傳統意義上可用於實現無限迴圈。由於構成迴圈的三個表達式中任何一個都不是必需的,您可以將某些條件表達式留空來構成一個無限迴圈。

static void Main(string[] args)
{
    for (; ; )
    {
        Console.WriteLine("Hey! I am Trapped");
    }
    
 

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

-Advertisement-
Play Games
更多相關文章
  • 編寫包含多個 `csproj` 的程式時,隨著項目數量的持續增加,可能涉及一些文件夾的變動,手動添加項目或者變動會變得非常麻煩,這個時候,可以利用 `dotnet cli` 幫助我們完成。 如果從零開始,我們可以新建一個解決方案。 ```powershell dotnet new sln -n to ...
  • # 依賴註入的使用 ## 構造方法註入 這是將服務註入類的最常用方法,是將依賴項註入類的首選方式,也是微軟推崇的模式。這樣,除非提供了所有構造方法註入的依賴項,否則無法構造類,顯示的聲明瞭類必需的服務,使開發人員一目瞭然。 ```csharp public class BookAppService ...
  • 假設老師類設計如下: class 老師類 { 屬性:姓名,性別,生日,工資 行為:吃飯,跑步,教學 } 學生類設計如下: class 老師類 { 屬性:姓名,性別,生日,班級 行為:吃飯,跑步,學習 } 我們秉承著,讓最簡潔的代碼,實現最最強大的功能原則,能否讓上述案例中的重覆代碼進行優化呢?我們能 ...
  • 前言 我們天天都在使用 Console.WriteLine("Hello world"); ​ Console.ReadLine(""); ​ Arrays.Sort() 為什麼Console 類 調用 方法不需要實例化而可以直接調用呢? 我們可以查看Console的源碼發現Console類定義如下 ...
  • 假設,班級里40位同學,我們用程式保存40位學生的信息:學號,姓名,性別,生日,身份證號。如果是你,你會怎麼實現? 小菜同學拿到這個題,奮書疾筆,馬上寫出如下代碼: ArrayList list = new ArrayList(); ​ string stuNo1="10001"; string n ...
  • 1. 數組(Array) 數組是一個存儲相同類型元素的固定大小的順序集合。數組是用來存儲數據的集合,通常認為數組是一個同一類型變數的集合。 聲明數組變數並不是聲明 number0、number1、...、number99 一個個單獨的變數,而是聲明一個就像 numbers 這樣的變數,然後使用 nu ...
  • 今天這一份資料庫可以幫助學習認識簡繁體字。資料庫提供簡繁欄位,可以根據簡體選擇繁體,也可以根據繁體選擇簡體。 需要說明的是: 1.有很多簡體繁體字是一樣的,簡體字繁體字不一樣的記錄一共僅有3168條。 2.簡字中存在相同字多條記錄的情況,如下圖,不相同的簡字統計共有2萬多個。 3.同2一樣繁字中也存 ...
  • 很多時間,寫代碼並不能一擼到底,中間都是經歷過無數次的調試,才能正常正確的運行起來。就好像一臺設備剛買來也需要不斷的調試才能達到最佳狀態。 DotNet程式的調試,是DotNet程式員必備的技能之一,開發出穩定的程式、解決程式的疑難雜症都需要很強大的調試能力。DotNet調試有很多方法和技巧。 1. ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...