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