1. 程式人生 > >C#程式設計基礎(簡單概述與理解)

C#程式設計基礎(簡單概述與理解)

1、C#變數和資料輸入

C#常用到的幾個資料型別:

整型:int  說明:32位有符號整數  範圍:-2³¹~2³¹-1

浮點型:double  說明:64位雙精度浮點數  範圍:±5.0×10-­﹣³²~±1.7×10³º

布林型:bool  值:true和false  字串型:0個或多個字元組成的字串 

變數概念:

 變數就是一塊儲存空間,儲存的值在程式執行過程中是可以不斷變化的。

C#變數命名規範:

  • 變數名只能由數字、字母和下劃線組成
  • 變數名的第一個字元只能是字母或下劃線,不能是數字
  • 不能使用C#中的關鍵字、類名等作為變數名
  • 通常變數名的首字母小寫、如果變數名是多個單片語成,那麼出第一個單詞的首字母小寫之外,其他單詞的首字母均為大寫(駝峰命名法)

   注:一般變數名都全是字母組成的,不要與C#中的關鍵字、類名相同就行

C#變數的賦值基礎語法:

int x=34;  //定義變數y

y=100;    //給y賦值

int i=100+10*5;  //把表示式的結果賦值給變數i;

C#變數的輸出:

Console.WriteLine("殿下,請輸入您的大名:");
string Name = Console.ReadLine();
Console.WriteLine("殿下,請輸入您的芳齡");
int Age =int.Parse(Console.ReadLine());  

C#變數的輸出:

Console.WriteLine();//輸出了一行空行 (換行)
Console.WriteLine("明星:","票價:","GD","1000");//中有兩個格式字元           {},{1}後面的兩個資料,“GD”和“1000”按順序放在其中的一個位置顯示
Console.WriteLine("I LOVE YOU");//有換行效果
Console.Write("I LOVE YOU");//沒有換行效果
Console.WriteLine("登出快捷鍵與註釋效果"); //ctrl+k+c
Console.WriteLine("取消登出快捷鍵與註釋效果");//ctrl+k+u

C#變數的輸出:

Console.WriteLine("地址:{0}", "珠海"); //在C#中,格式字串的引數是從0開始計算的
int HYX = 520; //定義整型變數並賦值
Console.WriteLine("" + HYX); //提示文字+HYX的值

C#資料型別的轉換:

隱式轉換:主要是用於安全的型別轉換,由系統自動完成。

int x = 33;
double y = x;//int型別轉換成了double型別儲存
int z = 'Q';//char型別轉換成了int型別儲存 

顯示轉換:也叫強制轉換,它的基本語法是這樣的(目標型別)(表示式)。

double x= 33.44;
int y = (int)x;//將x轉成整型
float z = (float)(z + 30);//將表示式轉換成單精度浮點型    

2、C#運算子和選擇語句

C#賦值運算子:

運算子 運算規則 意義
= 將表示式賦值給變數 將右邊的值給左邊
+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
\= x/=y x=x/y
%= x%=y x=x%y(%用於求餘數)

使用運算子來解決一個問題:

int x = 30, y = 40, temp;
Console.WriteLine("交換前的資料:x={0},y={1}",x,y);
//開始交換資料
temp = x;
x = y;
y = temp;
Console.WriteLine("交換後的資料:x={0},y={1}",x,y);

C#算術運算子:

運算子 運算規則 意義
+ x+y 執行加法運算
- x-Y 執行減法運算
* x*y 執行乘法運算
/ x/y 執行除法運算,得到商的值
% x%y 執行除法運算,得到餘數的值
++ x++或++x 自增1
-- x--或--x 自減1

C#關係運算符:

運算子 運算規則 示例 結果
== x==y 10==20 false
!= x!y 10!20 true
> x>y 10>20 true
>= x>=y 10>=20 fa;se
< x<y 10<20 true
<= x<=y 10<=20 true

C#邏輯運算子:

運算子 運算規則 意義
&&(與) A&&B A和B同時為true,結果為true注意:當A為false,B不需要計算
||(或) A||B A和B只要一個為true,結果為true注意:當A為true,B不需要計算
!(非) !A A為true,結果為false;A為false,結果為true;

C#運算子的優先順序:

優先順序 運算子
()
  字首++,字首--,!
  *,/,%
  +,-
  <,<=,>,<=
  =,!=
  &&
  ||
  =,+=,-=,*=,/=,%=
字尾++,字尾--

C#選擇語句1:

Console.WriteLine("請輸入您的國籍哈!");
string country = Console.ReadLine();
if (country == "中國") {
    Console.WriteLine("您是愛好和平的偉大中國人!");
} else {
    Console.WriteLine("你好黑鬼!(注:純屬搞笑的)");
}

C#選擇語句2:

int月;
Console.WriteLine("請輸入一個月份:");月 = Convert.ToInt32(Console.ReadLine());
if (月 >= 1 && 月 <= 12) {
    Console.WriteLine("{0}您輸入的月份正確!", 月);
} else {
    Console.WriteLine("{0}您輸入的月份錯誤!", 月);
}

C#選擇語句3:

Console.WriteLine("請輸入您的性別:");
string性別 = Console.ReadLine();
Console.WriteLine("請輸入您的年齡:");
int年齡 = Convert.ToInt32(Console.ReadLine());
if (性別 == "") {
    if (年齡 >= 22) {
        Console.WriteLine("你是{0}性,今年{1}歲,您已達法定結婚年齡", 性別, 年齡);
    } else {
        Console.WriteLine("你是{0}性,今年{1}歲,您未達法定結婚年齡", 性別, 年齡);
    }
} else {
    if (年齡 >= 20) {
        Console.WriteLine("你是{0}性,今年{1}歲,您已達法定結婚年齡", 性別, 年齡);
    } else {
        Console.WriteLine("你是{0}性,今年{1}歲,您未達法定結婚年齡", 性別, 年齡);
    }
}

C#選擇運算器:

int x,y;
Console.WriteLine("請輸入第一個數:");
x = Convert.ToInt32(Console.ReadLine()); //x = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入第二個數:");
y = int.Parse(Console.ReadLine());
Console.WriteLine("請輸入ysf:+,-,*,/");
string ysf = Console.ReadLine();
if (ysf == "+") {
    Console.WriteLine("{0}+{1}={2}", x, y, x + y);
}
if (ysf == "-") {
    Console.WriteLine("{0}-{1}={2}", x, y, x - y);
}
if (ysf == "*") {
    Console.WriteLine("{0}*{1}={2}", x, y, x * y);
}
if (ysf == "/") {
    Console.WriteLine("{0}/{1}={2}", x, y, x / y);
}

3、C#迴圈

C#中的四種迴圈結構:

  • for迴圈
  • whie迴圈
  • do...while迴圈
  • foreach迴圈

for迴圈語法結構:

for(表示式1;表示式2;表示式3;)
{

  語句塊;

}

for迴圈案例1+2+3...20的和:

int sum = 0; //存放和的變數
{
    for (int i = 1; i < 20; i++) {
        sum += i; //累加所有數的和
    }
    Console.WriteLine("1到20之間整數和為:{0}", sum);
}

 while迴圈語法結構:

while(布林表示式)

{

  語句塊;

}

while迴圈案例輸出1-8的整數:

int i = 1;
while (i <= 8) {
    Console.WriteLine(i);
    i++; //注意:這裡需要修改i的值
}

do...while迴圈結構語法:

int i = 1;
do {
    Console.WriteLine(i);
    i++; //注意:這裡需要修改i的值
} while ( i <= 8 );

C#巢狀迴圈的使用案例:

C#巢狀迴圈輸出10行1~8之間的整數:

for (int i = 1; i <= 10; i++) //外迴圈,i控制行
{
    for (int j = 1; j <= 8; j++) //內迴圈,j控制列
    {
        Console.WriteLine(j + ""); //輸出j
    }
    Console.WriteLine(); //輸出一行整數後再換行
}

 執行圖:

C#鑲套迴圈輸出直角三角形:

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++) //外層迴圈,i用於控制行數的變化
    {
        Console.Write(""); //內層迴圈,j用於控制列數的變化
    }
    Console.WriteLine(); //列印完一行後換行
}

執行圖:

 C#鑲套迴圈輸出九九乘法表:

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        Console.Write("{0}*{1}={2}\t", i, j, i * j);
    }
    Console.WriteLine();
}

執行圖:

4、C#陣列

C#一位陣列的宣告:

資料型別 [ ] 陣列名稱;

C#陣列的初始化:

(1)指定陣列儲存的元素序列,語法格式結構如下:

資料型別 [ ] 陣列名稱={值1,值2,值3,...,值n};

(2)指定陣列長度,使用new關鍵字初始化陣列,語法結構下:

 資料型別 [ ] 陣列名稱=new 資料型別[長度];

注意:數組裡只能儲存資料型別相同的資料!!!

注意:數組裡只能儲存資料型別相同的資料!!!

注意:數組裡只能儲存資料型別相同的資料!!!

Arrays.short();(升序)

例子:

int [ ] a={1,2,3}; 第一鍾方式,長度為3(因為我們初始化了3個值)

int [ ] b=new int [4]; 第二種方式,長度為4

int [ ] c=new int [4] {1,2,3,4}; 這兩種形式的結合,陣列長度必須和元素個數匹配

int [ ] d=new int [ ] {1,2,3,4,5,6,7} 初始化了元素,長度可以省略 

C#一維陣列迴圈案例:

string[] lx = new string[5];
for (int i = 0; i < lx.Length; i++) {
    Console.WriteLine("請輸入第{0}種軍用飛機型別:", i + 1);
    lx[i] = Convert.ToString(Console.ReadLine());
    Console.WriteLine("是否繼續輸入(y/n)?:");
    string a = Console.ReadLine();
    if (a == "n") {
        Console.WriteLine("資訊輸入完畢!");
        break;
    }
}

執行圖:

C#一位陣列求和與平均值:

int sum = 0; //累加
int n = 10; //決定使用者輸入的個數
int[] num = new int[n]; //儲存使用者輸入的10個數
//接收使用者輸入的10個數
for (int i = 0; i < num.Length; i++) {
    Console.WriteLine("請輸入第{0}個數:", i + 1);
    num[i] = Convert.ToInt32(Console.ReadLine());
    sum = sum + num[i]; //求和
}
Console.WriteLine("\n您輸入的數之和為:" + sum);
Console.WriteLine("您輸入的數平均值為:" + (sum * 1.0 / num.Length));

執行圖:

5、類與物件

類的概念:

泰迪是狗,加菲貓是貓,海綿寶寶是海綿,它們都是不同型別的事物,這裡就體現了什麼叫做類(區別、分類)

物件的概念:

假如有一堆的書,而《大主宰》是其中的具體一本,我們可以把《大主宰》這本書理解成就是一個物件。

屬性的概念:

眼前有個妹紙,她叫小美她的特點是很漂亮,小美是具體的一個物件,她的特徵是漂亮,這個特徵在程式中就相當於屬性。

方法的概念:

方法是一種執行的方式,它呼叫等於一個軍師,告訴呼叫它的物件它能做些神馬。

定義類的語法結構:

[訪問修飾符] class 類名 
{
類的成員;
}

定義欄位的語法結構:

[訪問修飾符] 資料型別 欄位名稱;

屬性定義語法如下:         自動屬性定義語法如下:

[訪問修飾符] 資料型別 屬性名稱                [訪問修飾符] 資料型別 屬性名稱{get;set;}
{
get{return 欄位;}
set{欄位=value;}
}

構造方法定義語法如下:

[訪問修飾符] 類名([引數列表的])

{
構造方法的主體;
}

物件定義語法如下:

類名 物件名=new 類名([引數列表]);   物件.屬性=值;//賦值   變數=物件名.屬性;//取值

例項方法的語法如下:

[訪問修飾符] 返回型別 方法名([引數列表])

{
方法主體;
}

方法的引數:

[訪問修飾符] 返回型別 方法名稱([引數型別 引數名稱1,引數型別 引數名稱2,……,引數型別 引數名稱n])

{
方法體
}

方法的返回值:

return 表示式;

例項方法的呼叫:

物件名.方法名([引數]);   //對於沒有返回值的方法

變數名=物件名.方法名([引數]);   //對於有返回值的方法

靜態方法:

[訪問修飾符] static 返回型別 方法名 ([引數列表])
{
方法體;
}

靜態方法的呼叫:

1.靜態的方法或變數是長期住留在記憶體中,直到程式關閉這個軟體才會在記憶體中消失
2.靜態方法的呼叫是無需構建物件類訪問,直接用類名打點呼叫
3.靜態方法內要訪問本類中的成員變數時,該成員變數也必須是靜態的