1. 程式人生 > >C#的初學知識點

C#的初學知識點

ati display 編寫 over lin 書寫 初學 依次 星期

初學C#


初見Hello,World

第一句源代碼:Console.WriteLine("Hello,World");;

認識.Net;

編譯工具:Visual Studio;

主函數:Public static void main(string[] args);

輸出語句:Console.WriteLine("Hello,world");


變量和數據類型

數據類型:常見的C#數據類型:char.string.int.double

變量:變量的語法:數據類型+空格+變量名+“;”;變量的賦值:變量名+“=”+數據+“;”

變量的命名:語法:數據類型+空格+名稱

變量的使用技巧:變量的三要素:數據類型、變量名、變量值

數據的運算:double類型和int類型運算,返回類型為double

字符串運算:字符串運算的方式是拼接;拼接符號:“+”

輸入語句:內容:Console.ReadLine();

類型轉換:任何類型轉換到string: 待轉換的數據.ToString();

數字類型:整數用int,實數用double

11轉義符“\”:··以反斜線"\"開頭,後跟一個或幾個字符

代碼註釋:單行註釋,多行註釋和文檔註釋

軟件中的錯誤及調試:編譯錯誤,運行錯誤和邏輯錯誤


運算符和表達式

認識運算符:一目運算符、二目運算符、三目運算符

小括號:類型轉換、改變運算順序、函數調用

算術運算符:

變量名++(--):1.計算返回結果,與變量相同;2.將變量的值增加1

++(--)變量名:1.計算返回結果,變量值加1;2.將變量的值增加1

賦值運算符: =;+=;-=;/=;%=

邏輯運算符:true和false

三目運算符:判斷條件?操作數1:操作數2

表達式:int a=1+2

運算符優先級:優先級越高的運算符,會優先得到執行

健康計算器:

技術分享
while(true)
            {
                //完成所有的提示工作並存入輸入的變量;
                Console.WriteLine("請輸入你的性別(男或女):");
                string input = Console.ReadLine();
                
if (input == "" || input == "") { Console.WriteLine("請輸入你的身高(厘米):"); double height = double.Parse(Console.ReadLine()); Console.WriteLine("請輸入你的體重(千克):"); double weight = double.Parse(Console.ReadLine()); //計算標準體重 double standarWeigtht = input == "" ? (height - 80) * 0.7 : (height - 70) * 0.6; if (weight < standarWeigtht * 0.9) { Console.WriteLine("標準體重的範圍是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之間~"); Console.WriteLine("很遺憾!您的體重偏瘦,請註意補充營養!"); } else if (weight > 1.1 * standarWeigtht) { Console.WriteLine("標準體重的範圍是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之間~"); Console.WriteLine("很遺憾!您的體重偏胖,請註意多多鍛煉!"); } else { Console.WriteLine("標準體重的範圍是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之間~"); Console.WriteLine("恭喜您!您的身材很健康,請繼續保持~"); } Console.ReadLine(); break; } else { Console.WriteLine("別開玩笑好嘛!請重新輸入“男”或者“女”t"); } } }
健康計算器


流程控制

流程圖:功能分析和代碼書寫分離;更加專註,便與解決復雜問題

if判斷:代碼格式:if(條件1){代碼1} else if (條件2) {代碼2} else {代碼N}

變量作用域:在大括號內,該變量有效,大括號外無效

收益計算器:

技術分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
            int sum = 0;
            for (int i = 1; i <= 100;i++ ) 
            {
                sum += i;
            }
            Console.WriteLine(sum);
             */

            /*
            Console.WriteLine("請輸入一個數:");
            int input = int.Parse(Console.ReadLine());
            switch(input)
            {
                case 1: Console.WriteLine("星期一");
                    break;
                case 2: Console.WriteLine("星期二");
                    break;
                case 3: Console.WriteLine("星期三");
                    break;
                case 4: Console.WriteLine("星期四");
                    break;
                case 5: Console.WriteLine("星期五");
                    break;
                case 6: Console.WriteLine("星期六");
                    break;
                case 7: Console.WriteLine("星期日");
                    break;
                default:
                    Console.WriteLine("錯誤顯示");
                    break;

            }
             */


            Console.WriteLine("請輸入您的存款金額(萬):");
            double input = double.Parse(Console.ReadLine());
            Console.WriteLine("請輸入您要存款的時間(年):");
            int input2 = int.Parse(Console.ReadLine());
            if (input2 <= 0)
            {
                Console.WriteLine("請重新輸入時間:");
            }
            if (input2 == 1)
            {

                if (input <= 0)
                {
                    Console.WriteLine("請重新輸入金額!");
                }
                else if (input > 0 && input < 50)
                {
                    double money1 = input * 0.04 * 1;
                    Console.WriteLine("恭喜你,存款成功,1年後到期," + "您的利息為:" + money1 + "(萬元)");
                }
                else
                {
                    double money2 = 1.1 * input * 0.04 * 1;
                    Console.WriteLine("恭喜你,存款成功,1年後到期," + "您的利息為:" + money2 + "(萬元)");
                }

            }



            if (input2 >= 2 && input2 <= 5)
            {
                int time = (int)input2;

                if (input <= 0)
                {
                    Console.WriteLine("請重新輸入金額!");
                }
                else if (input > 0 && input < 50)
                {
                    double money1 = input * 0.048 * time;
                    Console.WriteLine("恭喜你,存款成功," + input + "年後到期," + "您的利息為:" + money1 + "(萬元)");
                }
                else
                {
                    double money2 = 1.1 * input * 0.048 * time;
                    Console.WriteLine("恭喜你,存款成功," + input + "年後到期," + "您的利息為:" + money2 + "(萬元)");
                }

            }




            if (input2 > 5)
            {
                int time = (int)input2;

                if (input <= 0)
                {
                    Console.WriteLine("請重新輸入金額!");
                }
                else if (input > 0 && input < 50)
                {
                    double money1 = input * 0.052 * time;
                    Console.WriteLine("恭喜你,存款成功," + input + "年後到期," + "您的利息為:" + money1 + "(萬元)");
                }
                else
                {
                    double money2 = 1.1 * input * 0.052 * time;
                    Console.WriteLine("恭喜你,存款成功," + input + "年後到期," + "您的利息為:" + money2 + "(萬元)");
                }

            }
            Console.ReadLine();
        }
    }
}
收益計算器

Switch選擇:代碼格式:switch() {case 1:break; case 2:break;}

While循環:代碼格式:while(循環條件){循環體} //循環體可以是任意功能,任意數量的代碼

do While循環:先執行一次循環體

for循環:代碼格式:for(表達1;表達式2;表達式3) { 循環體}

查找問題:簡單查找:在樣本中,依次尋找目標數據


數組與集合

數組:數據類型 【】 變量名 =new 數據類型【長度】

數組的定長性:長度固定不變

數組的遍歷:從數組的第一項開始,依次取完數組的所有項

交換排序:

技術分享
 for (int i = 0; i < arr.Length; i++)
            {
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[i] > arr[j])
                    {
                        int temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }

            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]);
                if (i < arr.Length) { Console.Write(","); }
            }
交換排序

數組分析器:

技術分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入數組的長度:");
            int len = int.Parse(Console.ReadLine());
            int[] arr = new int[len];
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("請輸入第" + (i + 1) + "項的值");
                arr[i] = int.Parse(Console.ReadLine());

            }
            Console.WriteLine("數組所有項的值為:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]);
                if (i < arr.Length) { Console.Write(","); }
            }
            Console.WriteLine("\n");
            Console.WriteLine("數組從小到大排序後是:");
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (arr[i] > arr[j])
                    {
                        int temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }

            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]);
                if (i < arr.Length) { Console.Write(","); }
            }


            //求是否為奇數
            Console.WriteLine("\n");
            Console.WriteLine("數組裏的奇數有:");
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] % 2 != 0)
                {
                    Console.Write(arr[i]);
                    if (i < arr.Length) { Console.Write(","); }
                }
            }

            Console.WriteLine("\n");
            Console.WriteLine("數組裏的質數有");
            for (int i = 0; i < arr.Length; i++)
            {
                int n = arr[i];
                bool isFind = false;

                for (int j = 2; j < n; j++)
                {

                    if (n % j == 0)
                    {
                        isFind = true;
                        break;

                    }

                }
                if (isFind == true)
                {
                    //bushizhishu
                }
                else
                {
                    Console.Write(n);
                    if (i < arr.Length) { Console.Write(","); }
                }
            }


            Console.ReadLine();



        }
    }
}
數組分析器

集合:不定長,占用內存多,遍歷速度慢

數組能實現的所有功能,集合都能實現

foreach循環:只能用於遍歷數組或集合

集合管理器:

技術分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 集合管理器
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numbers = new List<int>();
            while (true)
            {

                Console.WriteLine("集合中現有內容如下:");
                Console.WriteLine("==============================================");



                //顯示集合
                if (numbers.Count == 0)
                {
                    Console.WriteLine("集合中沒有元素");
                }
                else //集合的遍歷
                {
                    foreach (int item in numbers)
                    {
                        Console.Write(item+"\t");
                    }
                    Console.WriteLine();//循環結束後讓光標換行
                }
                Console.WriteLine("==============================================");




                Console.WriteLine("1.添加數據");
                Console.WriteLine("2.刪除數據");
                Console.WriteLine("3.修改數據");
                Console.WriteLine("4.升序排序");
                Console.WriteLine("0.退出程序");
                Console.WriteLine("請選擇(0-4):");
                int num = int.Parse(Console.ReadLine());
                if(num==0)
                {
                    break;
                }
                else if(num==1)
                {
                    Console.WriteLine("請輸入要添加的數字:");  //添加數據
                    int input=int.Parse(Console.ReadLine());
                    numbers.Add(input);
                }
                else if(num==2)
                {
                    //刪除數據
                    Console.WriteLine("請輸入要刪除的元素(相同元素只會刪除第一個):");
                    int input=int.Parse(Console.ReadLine());
                    numbers.Remove(input);

                }
                else if(num==3)
                {
                    //修改數據
                    if(numbers.Count==0)
                    {
                        Console.Write("集合中沒有任何數據可以修,按回車鍵繼續。。。");
                        Console.ReadLine();
                    }
                    else{
                        int maxIndex=numbers.Count-1;
                    Console.WriteLine("請輸入你要修改的元素下標(0-"+maxIndex+"):");
                    int input1=int.Parse(Console.ReadLine());
                        if(input1<0||input1>maxIndex)
                        {
                            Console.WriteLine("輸入錯誤,下標超出範圍,按回車鍵繼續...");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("請輸入新的數據:");
                            int input2=int.Parse(Console.ReadLine());
                            numbers[input1]=input2;
                        }
                    
                    }
                }
                else if(num==4)
                {
                    //升序排序
                    for (int i = 0; i<numbers.Count-1; i++)
                    {
                        for (int j = i+1; j < numbers.Count;j++ )
                        {
                            if(numbers[i]>numbers[j])
                            {
                                int temp = numbers[i];
                                numbers[i] = numbers[j];
                                numbers[j] = temp;
                            }
                           
                        }
                        
                    }
                }
                else
                {
                    Console.WriteLine("請重新選擇!");
                }



                Console.Clear();//清屏
            }



        }
    }
}
集合管理器


函數

認識函數:具有獨立功能,並能通過名稱重復使用的代碼

作用域:一個變量,僅在他所定義的大括號中有效

標識符:變量名,函數名,類名,接口名,委托名,其他

聲明帶參數的函數:聲明帶參數的函數:static void 函數名(參數列表){//註釋內容}

調用帶參數的函數:函數編寫時,參數為形參;函數調用 時,

參數為實參;實參的數量和類型必須和形參完全對應

聲明帶返回值的函數:static 返回類型 函數名(形參列表){//函數體}

如果一個函數不需要返回,那麽它的返回類型就會void

當代碼運行到return語句時,立即結束函數

返回return關鍵字後面的值,變量或表達式的結果

調用帶返回值的函數:函數名(實參列表)

返回類型與函數聲明的返回類型一致

函數簽名:是一個函數的函數名、參數列表、返回類型的統稱

根據它實現函數調用;根據它實現函數體

文檔註釋:符號:///;通常寫到函數體外,用於描述函數體外的代碼

函數重載(overload):是指多個函數可以使用同一個函數名,只要他們的參數列表不同

函數的相互調用:在任意一個函數中,都可以調用其他的函數

只要代碼運行到調用函數的語句,就回去執行調用的函數體

遞歸函數:是指一個函數,直接或者間接的調用自身

遞歸必須有終止條件,否則,將會出現無限遞歸


C#的初學知識點