C#學習筆記--邏輯語句(分支和迴圈)

来源:https://www.cnblogs.com/TonyCode/archive/2023/10/10/17755122.html
-Advertisement-
Play Games

邏輯語句 條件分支語句 條件分支語句可以讓順序執行的代碼邏輯產生分支,滿足對應條件地執行對應代碼邏輯。 IF語句 //IF語句塊 int a=5; if(a>0&&a<15)//註意結尾無分號 { Console.WriteLine("a在0到15之間"); } //if……else結構 if( f ...


邏輯語句

條件分支語句

條件分支語句可以讓順序執行的代碼邏輯產生分支,滿足對應條件地執行對應代碼邏輯。
IF語句

//IF語句塊
int a=5;
if(a>0&&a<15)//註意結尾無分號
{
    Console.WriteLine("a在0到15之間");
}
//if……else結構
if( false )
{
    Console.WriteLine("滿足if條件 做什麼");
    if( true )
    {
        if (true)
        {

        }
        else
        {

        }
    }
    else
    {
        if (true)
        {

        }
        else
        {

        }
    }
}
else
{
    Console.WriteLine("不滿足if條件 做什麼");
    if (true)
    {

    }
    else
    {

    }
}
//if……elseif 結構
int a3 = 6;
if (a3 >= 10)
{
    Console.WriteLine("a3大於等於10");
}
else if( a3 > 5 && a3 < 10 )
{
    Console.WriteLine("a3在6和9之間");
}
else if( a3 >= 0 && a3 <= 5 )
{
    Console.WriteLine("a3在0和5之間");
}
else
{
    Console.WriteLine("a小於0");
}
//對於初學者而言,代碼邏輯要整齊,錯落有致,方便對比嵌套邏輯語句塊的配對

if語句的小練習--分辨奇偶數字

try
{
    console.writeline("請輸入一個整數");
    int num = int.parse(console.readline());
    //能被2整除的數 叫偶數
    if (num % 2 == 0)
    {
        console.writeline("your input is even");
    }
    else
    {
        console.writeline("your input is odd");
    }
}
catch
{
    console.writeline("請輸入數字");
}

語句塊的知識
{}括起來的邏輯語句是一個代碼塊,註意變數在代碼塊中的生命周期

//語句塊體悟
//語句塊引起的變數的生命周期
//語句塊中聲明的變數只能在當前的語句塊中使用
//體會當下代碼在編譯器中的報錯意義!
int a = 1;
int b = 2;
{
    int b = 3;
    Console.WriteLine(a);
    Console.WriteLine(b);
}
Console.WriteLine(b);

int a = 5;
if (a > 3)
{
    int b = 0;
    ++b;
    b += a;
}
Console.WriteLine(b);
Switch 語句

當判斷條件過多時候,使用if elseif 來進行判斷時,需要寫多條elseif,顯得冗長繁瑣,為此體現出switch分支語句的優勢--清晰明瞭

//switch語句
int a=2;
switch(a)
{
   //這個條件一定是常量
    case 1:
        Console.WriteLine("a等於1");
        break;//每個條件之間通過break隔開 
    case 2:
        Console.WriteLine("a等於2");
        break;
    case 3:
        Console.WriteLine("a等於3");
        break;
    default://可省略 預設選擇條件
        Console.WriteLine("什麼條件都不滿足,執行default中的內容");
        break;
}
string str = "123";
switch (str)
{
    case "123":
        Console.WriteLine("等於123");
        break;
    case "234":
        Console.WriteLine("等於234");
        break;
}
//貫穿使用
//當一個變數同時滿足多個條件可以做多條件的“合併”判斷
//給變數對號找家--如果找到相關的可以接受的便會直接匹配,
//否則會繼續匹配下一條case條件
string name="暢知";
switch (name)
{
    //只要是符合三個條件之一就行
    case "暢知":
    case "TonyChang":
    case "小明":
    	Console.WriteLine("是個帥哥!");
    	break;//break有阻斷作用
    case "小玉":
    case "莉莉":
    	Console.WriteLine("是個美女!");
    	break;
     default:
        break;
}

switch使用練習:學生成績的分檔

//輸入學生的考試成績,如果
//成績 >= 90:A
//90 > 成績 >= 80:B
//80 > 成績 >= 70:C
//70 > 成績 >= 60:D
//成績 < 60:E
//(使用switch語法完成)
//最後輸出學生的考試等級
try
{
    Console.WriteLine("請輸入學生成績");
    int cj = int.Parse(Console.ReadLine());
    // 取它的 十位數
    // 100 / 10 = 10
    // 99 / 10 = 9
    // 84 / 10 = 8
    // 74 / 10 = 7
    // cj = cj / 10;
    cj /= 10;
    switch (cj)
    {
        case 10:
        case 9:
            Console.WriteLine("你的成績是A");
            break;
        case 8:
            Console.WriteLine("你的成績是B");
            break;
        case 7:
            Console.WriteLine("你的成績是C");
            break;
        case 6:
            Console.WriteLine("你的成績是D");
            break;
        default:
            Console.WriteLine("你的成績是E");
            break;
    }
}
catch
{
    Console.WriteLine("請輸入數字");
}

迴圈語句

迴圈可以使滿足迴圈執行條件的邏輯反覆執行。註意不要隨便寫出死迴圈。

while迴圈
//while迴圈
int a=1;
while(a<10)//迴圈條件
{
    ++a;
}
Console.WriteLine(i);
//迴圈的嵌套使用
int a1=1;
int b=0;
while (a1 < 10)
{
    ++a1;
    while (b < 10)
    {
        ++b;
    }
}
//break的使用
//break可以是執行邏輯點跳出while語句塊
 while (true)
{
    Console.WriteLine("break之前的代碼");
    break;
    Console.WriteLine("break之後的代碼");
}
Console.WriteLine("迴圈外的代碼");
//continue的使用
//使執行邏輯點跳出當前的迴圈內容
//直接進入下一次的迴圈判斷執行
//列印1到20之間的 奇數
int index = 0;
while(index < 20)
{
    ++index;
    //什麼樣的數是奇數
    //不能被2整除的數 ——> %
    if (index % 2 == 0)
    {
        continue;//跳過偶數情況
    }
    Console.WriteLine(index);
}

練習--找出100內所有素數列印

 //找出100內所有素數並列印。
int num = 2;
while( num < 100 )
{
    // 用想要判斷是素數的數  從2開始 去取餘 如果 中途就整除了 證明不是素數
    // 如果 累加到和自己一樣的數了 證明是素數
    int i = 2;
    while( i < num )
    {
        //判斷是否整除
        if( num % i == 0 )
        {
            break;
        }
        ++i;
    }
    if( i == num )
    {
        Console.WriteLine(num);
    }
    ++num;
}
doWhile迴圈

do……while語句與while迴圈差不多,只不過這個家伙太魯莽,先斬後奏,不管如可,先執行代碼塊,再進行條件判斷

//do while迴圈簡單應用
string userName = "";
string passWord = "";
bool isShow = false;
do
{
    //這句代碼 第一次 肯定不能執行
    if (isShow)
    {
        Console.WriteLine("用戶名或密碼錯誤,請重新輸入");
    }
    //迴圈輸入
    Console.WriteLine("請輸入用戶名");
    userName = Console.ReadLine();
    Console.WriteLine("請輸入密碼");
    passWord = Console.ReadLine();
    isShow = true;
} while (userName != "暢知" || passWord != "666");
for迴圈

for迴圈是最常使用的一種迴圈語句,

//for迴圈
for( int i = 10; i >= 0; i-- )
{
    Console.WriteLine(i);
}
//每個空位 可以按照規則進行書寫 
//註意:分號不可以省去,即便沒有變數聲明也不可以省!
//第一個空位 聲明變數 可以同時聲明多個
//第二個空位 判斷條件 返回值為bool
//第三個空位 對變數的操作 
for( int i = 0, j = 0; i < 10 && j < 0; ++i, j = j + 1)
{
}
//for迴圈的特殊使用
 // for迴圈可以寫死迴圈
//for( ; ; )
//{
//    Console.WriteLine("for迴圈的死迴圈");
//}

int k = 0;
for(; k < 10; )
{
   ++k;//k++, k += 1;
}

//for( k = 0; ; ++k )
//{
//    if( k >= 10 )
//    {
//        break;
//    }
//}

for迴圈的經典練習:

一般都是找要執行邏輯塊執行結果和迴圈條件變數之間的對應關係

//在控制臺上輸出如下10 * 10的空心星型方陣
//**********
//*        *
//*        *
//*        *
//*        *
//*        *
//*        *
//*        *
//*        *
//**********
//行
for (int j = 0; j < 10; j++)
{
    //列
    for (int i = 0; i < 10; i++)
    {
        //列 如果是 第1行和最後1行 那麼 內層列迴圈 都列印星號
        // 按照 **********的規則列印
        if (j == 0 || j == 9)
        {
            Console.Write("*");
        }
        //否則 就是 按照*         *的規則列印
        else
        {
            if (i == 0 || i == 9)
            {
                Console.Write("*");
            }
            else
            {
                Console.Write(" ");
            }
        }
    }
    Console.WriteLine();
}
//在控制臺上輸出如下10行的三角形方陣
//         *            1    1   -> 2i - 1    9    10 - i
//        ***           2    3   -> 2i - 1    8    10 - i
//       *****          3    5                7    10 - i
//      *******         4    7                6    10 - i
//     *********        5    9                5
//    ***********       6    11               4
//   *************      7    13               3
//  ***************     8    15               2
// *****************    9    17               1
//*******************   10   19               0    10 - i
//行
for (int i = 1; i <= 10; i++)
{
    //列印空格的列
    for (int k = 1; k <= 10 - i; k++)
    {
        Console.Write(" ");
    }

    //列印星號的列
    for (int j = 1; j <= 2*i-1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

//在控制臺上輸出九九乘法表
for (int i = 1; i <= 9; i++)
{
   //1 1 X 1 = 1 空行
   //2 1 X 2 = 2 2 X 2 = 4 空行
   //3 1 X 3 = 3 2 X 3 = 6 3 X 3 = 9 空行
   for (int j = 1; j <= i; j++)
    {
        Console.Write("{0}X{1}={2}   ", j, i, i * j);
    }
    Console.WriteLine();
}
 //求1~100之間所有偶數的和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    //判斷是否是偶數 是否能整除2
    if( i % 2 == 0 )
    {
        sum += i;
    }
}
for (int i = 2; i <= 100; i += 2)
{
    sum += i;
}
Console.WriteLine(sum);

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

-Advertisement-
Play Games
更多相關文章
  • 看到一篇 IDEA 快捷鍵的總結,非常全面,分享一下。 本文參考了 IntelliJ IDEA 的官網,列舉了IntelliJ IDEA(Windows 版)的所有快捷鍵。併在此基礎上,為 90% 以上的快捷鍵提供了動圖演示,能夠直觀的看到操作效果。 該快捷鍵共分 16 種,可以方便的按各類查找自己 ...
  • 本文深入探討了Go語言中通道(Channel)的各個方面,從基礎概念到高級應用。文章詳細解析了通道的類型、操作方法以及垃圾回收機制,更進一步通過具體代碼示例展示了通道在數據流處理、任務調度和狀態監控等多個實際應用場景中的作用。本文旨在為讀者提供一個全面而深入的理解,以更有效地使用Go中的通道進行併發 ...
  • 堆疊柱狀圖,是一種用來分解整體、比較各部分的圖。與柱狀圖類似,堆疊柱狀圖常被用於比較不同類別的數值。而且,它的每一類數值內部,又被劃分為多個子類別,這些子類別一般用不同的顏色來指代。 柱狀圖幫助我們觀察“總量”,堆疊柱狀圖則可以同時反映“總量”與“結構”。也就是說,堆疊柱狀圖不僅可以反映總量是多少? ...
  • 目錄XXLJob簡介特性模塊安裝調度中心初始化資料庫配置啟動整合執行器pomymlXxlJobConfig啟動執行器實踐簡單的定時任務在執行器創建任務在調度中心創建執行器在調度中心創建任務帶前置和後置處理的定時任務XxlJob註解詳解創建帶前(後)置處理的任務父子任務父子執行器關聯父子任務執行器側l ...
  • 用Rust手把手編寫一個wmproxy(代理,內網穿透等), HTTP內網穿透支持修改頭信息項目 涉及HTTP1.1 chunked, http2, keep-alive ...
  • Java 21 版本更新中最重要的功能之一就是虛擬線程 (JEP 444)。這些輕量級線程減少了編寫、維護和觀察高吞吐量併發應用程式所需的工作量。 ...
  • 介紹 一、MQTT簡介 MQTT(Message Queuing Telemetry Transport) 是一種輕量級的消息傳輸協議,通常用於在物聯網(IoT)和感測器網路中進行通信。它設計用於在低帶寬、不穩定或高延遲的網路環境下傳輸數據,因此非常適用於連接設備之間的通信,尤其是在資源有限的環境中 ...
  • 因為用習慣了Python中一些便捷的方法,隨即查詢C#中有沒有類似的。 一、Range()方法 在Python中,range(Start,End,Step)可以直接生成一個可迭代對象,便用於需要迴圈多次處理某些代碼塊: (註:Range方法中的End是開區間,range(1,10)實際的取值是(1 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...