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.靜態方法內要訪問本類中的成員變數時,該成員變數也必須是靜態的