C#基礎(上)

第一章  開發入門

1-01 從一段代碼開始

①計算機語言php

概念:人類與計算機溝通的工具html

常見的計算機語言:C.PHP.Ruby.Java.C#.Basic.js.C++. ...等等java

②源代碼編程

概念:用某種計算機語言編寫的內容(目前C#源代碼)windows

代碼的執行:源代碼→編譯器compiler(負責編譯的工具)→
編譯compile→
機器代碼101010100011111010瀏覽器

③編譯安全

將源代碼轉換成機器代碼函數

 

拓展:軟件開發中的常見術語工具

①二進制visual-studio

  在咱們現實世界中,有十個數字(0-9),所以,到達十的時候,數字不夠用了,就必需要進一,這叫作逢十進一。

而計算機只能識別高電平和低電平兩種狀態,它只能使用兩個數字(0-1)來表示,所以,到達二的時候,數字不夠用,就必需要進一,這叫作逢二進一。

下面的表格表示了十進制數字和二進制數字的對應關係:
十進制數字 二進制數字
0   0
1   1
2   10
3   11
4   100

 

②指令

  指令是可以被CPU理解並執行的二進制命令

CPU全稱Central Processing Unit,譯爲中央處理器,它是計算機的一個重要組件。你能夠把CPU想象成計算機的大腦,這個繁忙的大腦每時每刻都在處理各類命令。

這些命令多是讓它做一個加減運算,也多是讓它把某個文字存放起來,又或者是讀取出來。

但CPU畢竟是個電子元件,它並不能理解全部的命令,你不能讓它給你來個少林功夫+唱歌跳舞。

因此,咱們把可以被CPU理解並執行的命令稱爲指令。而CPU做爲一個電子元器件,可以理解的命令格式,必定是二進制的。所以,指令,也一定是二進制的。

③程序

  程序的概念其實很是簡單,一條指令可以作一件事,多條指令可以作多件事。把多條指令按照必定的序列串起來、排好隊,就是程序。這些指令一個一個交給CPU執行,就能夠完成豐富的功能,就像下圖這樣:

 

 計算機語言發展進程

  計算機語言大體通過了機器語言、彙編語言、高級語言三個階段的發展歷程。 

①彙編語言

彙編語言使用助記符來替代機器指令

機器語言這種反人類的設計,阻礙了軟件的發展。

所以,後來出現一種語言,它使用一些人類世界中的單詞,來表明機器指令,這樣的單詞,叫作助記符,而這種語言,叫作彙編語言。

②高級語言

高級語言更加符合人類的思惟習慣

彙編語言雖然使用了不少助記符,但它仍然要關注計算機硬件的執行原理,好比:寄存器、控制器、邏輯部件、緩衝區等等等等。所以,彙編語言仍然難以被人類學習和理解。

咱們開發的軟件,功能上已經夠複雜的了,還要在編程時考慮計算機底層的硬件原理……
簡直痛不欲生,生,生離死別,別,別了,世界!

高級語言解決了這一問題,使用高級語言,你不用再去考慮計算機硬件是怎麼執行的,你能夠將目光更加專一於功能的開發。

實際上,高級語言也會考慮一部分計算機的底層原理,只不過這一部分很是之少,相對於彙編來講,已是極大的改善了。

高級語言有不少,好比:C#、java、C、js、Python等等等等。

③語句

語句是指代碼中一句可獨立運行的代碼

簡單來講,語句就是代碼中的一句話,這句話表達了一個功能點,一個完整的代碼,能夠由一條,也能夠由不少條語句組成。

好比,這節課中的代碼就是一條輸出語句,用於在控制檯中輸出內容:

Console.WriteLine("Hello,World");

固然你能夠寫多條語句,就像這樣:

Console.WriteLine("Hello,World");
Console.WriteLine("你好");

④語法

語法是指代碼中單詞、符號的組合規則

和現實場景同樣,語法,就是規定你應該怎麼說話,應該如何組織字、詞、符號。

在現實場景中,你能夠問我:「吃了嗎?」,這是符合語法的,但若是你說:「嗎了吃!」,我不只聽不懂你在說什麼,並且感受你在罵我……

一樣的,在計算機語言中,也有不少的語法規則,這裏,我先介紹C#語言中的三個基本語法規則:

全部的單詞,區分大小寫

就是說,兩個單詞如何相同,但大小寫不一樣,C#會認爲它們是兩個不一樣的單詞。
好比:Console和console是兩個不一樣的單詞。

全部的符號都必須是英文符號

這個很好理解,你能夠寫:

Console.WriteLine("Hello,World");

但不能夠寫:

Console。WriteLine("Hello,World");

但這裏有個例外,就是雙引號和單引號中的字符不做限制,之後你就會知道了。

全部的語句都必須以分號結束

和不少語言同樣,C#語言也是使用分號做爲每一條語句的結尾。

⑤總結

下面,用於一個表格,對以上的術語進行總結:
術語名 解釋
二進制   二進制是計算機使用的一種計數方式
指令  指令是可以被CPU理解並執行的二進制命令
程序   程序,也就是軟件,它是指多個指令的有序排列
計算機語言發展歷程  機器語言 -> 彙編語言 -> 高級語言
機器語言  機器語言是可以直接被計算機理解並執行的語言
彙編語言  彙編語言使用助記符來替代機器指令
高級語言  高級語言更加符合人類的思惟習慣
語句  語句是指代碼中一句可獨立運行的代碼
語法  語法是指代碼中單詞、符號的組合規則

 

 

 

1-02  code  compile run

1 .code  編碼

· 使用C#語言

· 用Windows記事本編寫(  *注意:代碼間標點用英文狀態)

·  實如今控制檯輸出「hello,world」的功能

 

2. compile  編譯

·  使用C#編譯器exe(位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319)

·  將編譯結果保存到exe文件中

3. run   運行

使用命令行(快捷鍵Ctrl+R)→   cmd

拓展:  認識.NET

1.再談C#的編譯過程

爲何不是機器代碼?

CPU的差別性;操做系統平臺的差別性

中間代碼

  C#語言的編譯器CSC,爲了解決跨機器跨平臺的問題,不會將源代碼直接編譯爲機器代碼,而是將其編譯成中間代碼,稱爲IL。

中間代碼,既不是源代碼,也不是機器代碼,你能夠把它想象成一種介於源代碼與機器代碼之間的代碼。在閱讀難易程度上,它的易讀性比源代碼高,比機器代碼低。

編譯成中間代碼起什麼做用呢?注意!巧妙的地方來啦!

世界上,沒有任何一個操做系統,也沒有任何一款CPU,可以識別這種中間代碼。全世界,只有一款軟件能夠識別,這款軟件就是.NET。

.NET能夠識別並執行中間代碼,它會根據當前的運行環境(CPU和操做系統),將中間代碼轉換爲最合適的平臺代碼(能夠理解爲機器代碼),交給CPU和操做系統執行。

也就是說,用C#開發的程序,編譯好後,能夠放到任何一臺計算機、任何一種操做系統上執行,前提條件是,它要安裝一個軟件.NET。

win七、win八、win10操做系統安裝後,會自動安裝.NET。windows xp或以前版本的操做系統則不會。

若是你是windows xp或以前版本的操做系統,想要運行.NET程序,須要單獨下載.NET安裝。可是我不會告訴你在哪裏下載又怎麼安裝。由於個人建議是,做爲看一個開發人員,趕快,麻溜兒的給我去升級操做系統!

若是你使用的是mac,這篇文章會幫助到你:http://jingyan.baidu.com/article/14bd256e79797dbb6d2612c8.html

因而,咱們能夠獲得C#語言從源代碼到執行的完成過程:→

 

這樣一來,使用C#語言開發程序,只須要編譯一次,就能夠將編譯結果放到任何一臺計算機上正確執行,真正作到了跨機器、跨平臺。

固然別忘了,前提條件是,該計算機要安裝.NET,由於這一切,都是.NET的功勞。

實際上,.NET平臺不只僅能夠解決跨機器跨平臺的問題,它還有不少強大的功能,下面介紹它的幾個重要功能。

 

 

2. NET的組成部分

.NET運行時

.NET運行時,全稱Common Language Runtime,縮寫爲CLR,中文譯爲:公共語言運行時。

前面提到的,.NET能夠根據當前的運行環境,將中間代碼轉換爲特定最終代碼的功能,就是CLR提供的。
.NET跟語言無關!無論你是用java仍是php,無論是用C仍是VB,只要你能把源代碼轉換成中間代碼,.NET的CLR就能夠執行,它不用管你的源代碼究竟是什麼語言。
正是由於這一特性,.NET能夠支持各類各樣的計算機語言,它把這些可以編譯成中間代碼的語言叫作公共語言,而CLR正是用於執行這些語言編譯結果的,因此,它叫作公共語言運行時。

也正是由於這一特性,.NET得到了不少語言的支持,你使用如下這些語言編寫代碼,均可以順利的交給.NET運行

 

公共類庫


  能夠把公共類庫想象成一個超大型的知識庫,知識庫中存在大量的、已經完成的代碼,這些已經寫好的代碼能夠極大的方便你的開發。只要是.NET支持的語言,均可以從這個知識庫中獲取它各個層面的功能。不一樣的語言,只是表達方式有差別罷了。

實際上,在控制檯中輸出內容,並不是一件簡單的事情,你之因此能夠用這段簡單的代碼就能夠達到輸出內容的目的,正是由於這句代碼使用了公共類庫中的功能。公共類庫中已經給你寫好了輸出代碼,你只須要使用C#的語法使用便可。

 

1-03  開發工具

IDE(intergrated development environment集成開發環境)

Java:Eclipse

Html:WebStorm

C#:Visual Studio

 

 

使用VS2013

新建工程

編寫代碼

編譯和運行

找到編譯文件

遷移工程

 

 

 

拓展 :Visual Studio安裝教程

本文介紹如何在windows平臺中安裝Visual Studio,若是你是mac,請安裝VS Code

Visual Studio 是一款優秀的IDE,但它難免費,而且價格不菲。

慶幸的是,微軟在2014年發佈了免費版的Visual Studio,將其稱爲Visual Studio 社區版(Visual Studio Community),該版本專門面向學生和我的開發人員,而且隨着之後VS每一次的更新換代,都會發布對應的免費社區版。

雖然社區版(免費)缺乏了企業版(收費)的一些功能,但不用擔憂,對於學習階段的開發者,完徹底全夠用。

因此,沒時間解釋了,趕快上車!



1 下載

第1步

在瀏覽器中打開下面的地址: 
https://www.visualstudio.com/zh-hans/downloads/

經過該地址,會獲得VS最新一代的社區版,好比,在我寫這篇文章的時候,該連接會獲得VS2015社區版。

估計看到這裏,有些小夥伴就要糾結了:那這樣一來,不是和視頻教學中使用版本不同了嗎?

乖,不要在乎這些細節,VS的每一個版本其實大同小異,都差很少,不用擔憂。

第2步

打開該地址後,找到頁面的這個區域,而後點擊+號:

第3步

找到展開後的這個區域,而後選擇單選框下拉列表,以下圖所示,選擇好後點擊Download下載:

下載完成後,進入下一階段 —— 安裝。

2 安裝

注意:VS的安裝時間比較長,可能長達一個小時,中途不要中斷!

第1步

你下載的文件是一個後綴名爲ISO的鏡像文件,須要使用虛擬光驅打開。

win8和win10操做系統都自帶虛擬光驅功能,但不排除某些不可描述的緣由,致使有些win8系統沒有自帶虛擬光驅功能。

那如何查看本身的操做系統是否自帶虛擬光驅功能呢?

最簡單的方式就是看圖標!若是你發現剛剛下載的文件是一個相似光盤的圖標,雙擊打開便可。

若是不是,參考這裏: 
http://jingyan.baidu.com/article/fec4bce220196ef2618d8b1a.html

這裏其實還有一種狀況,就是圖標是光盤圖標,可是雙擊後沒有反應。若是是這種狀況,其實已經加載虛擬光驅成功了。你能夠進入個人電腦,會發現多了一個光驅,大概是這個樣子: 
 
進入這個光驅便可。

第2步

打開虛擬光驅後,雙擊這個文件,進入安裝:

第3步

一開始,安裝程序會進行一些初始化的操做,這裏須要耐心等待一段時間。

第4步

一段時間後,會看到以下界面:

這裏的安裝位置你能夠更改,強烈建議你不要改,若是必定要改,必須保證以下幾點

  • 目錄中不得包含中文和中文符號
  • 最終的安裝目錄必須是一個空白的文件夾
  • 以上兩點念三遍

安裝類型保持默認便可。

而後點擊安裝

第5步

  • 別讓你的電腦在安裝過程當中斷電
  • 不要在安裝的過程當中用電腦玩遊戲
  • 不要在安裝的過程當中使用很佔資源的應用
  • 更加不要點擊取消,你會後悔的
  • 實際上,我建議你去睡一下子

第6步

當一切都安裝好後,點擊啓動。

第7步

啓動後,會提示你使用微軟的live帳號登陸,這一步必須完成,由於儘管社區版免費,但僅針對使用live帳號的人免費。若是你沒有live帳號,能夠點擊註冊。

註冊帳號並不複雜,趕忙的。

第8步

登陸後,會提示你完善帳號信息,其中Full name(你的全名)是必填,其餘無論,填好後,點擊Continue:

點擊後可能會讓你選擇風格和語言 
語言選擇C# 
風格隨便,我推薦深色 
選擇完成後,點擊啓動Visual Studio

第9步

在VS爲你的第一次使用完成準備後,就會進入該界面:

說明什麼,朋友?

大聲的告訴我,你成功了!

等等,爲了你之後可以順利的打開VS,你能夠在開始菜單中找到Visual Studio 2015,而後添加它的桌面快捷方式。

好了,以上,就是安裝VS社區版的過程,祝安裝順利。

 

 

 

1-04  認識主函數

·  定義:程序啓動時運行的函數。又稱main函數,入口函數,啓動函數

·  運行時,程序從上到下依次運行函數體中的每一句代碼

·  主函數運行結束後,程序結束

 

 

 

 

 

第二章   變量和數據類型

2-01  數據和數據類型

 數據:有用的信息

數據類型:對數據的分類

C#語言中的數據類型(常見)

char  字符類型

單個文字(漢子、字母、數字、標點符號)

書寫方式:用成對的英文單引號表示(eg:  '漢'    'A'   '2'   '?'  )

string  字符串類型

不限數量的文字(漢字、字母、數字、標點符號)

書寫方式;用成對的英文雙引表示(eg:  "漢"     " "   "hello,world"  )

int  整數類型

簡稱整型,用於表示一個整數

書寫方式:直接書寫(eg:0   100  -1   -100)

double  小數類型

用於表示包含小數點的數字

書寫方式:直接書寫(eg:0.0   1.1   -1.1  -1.123)

 

 

2-02   認識變量

變量:一塊存儲數據的內容空間,而且該內存區域的數據內容能夠變化

變量的聲明

指定一塊內存空間,用於存放數據

語法: 數據類型  變量名 (eg:①int number;   ②string str;)

變量的賦值:將數據存放到變量的內存空間

eg:int number; string=s;
number=6; s="yes"

*注意:①生命和賦值的變量名一致
②賦值的類型與聲明要一致
③「=」叫作賦值符號,不是等號

 

總結

變量用於在內存中存儲數據

變量存儲的數據可變

變量必須先聲明後賦值

 

 

2-03  變量命名

概念:給變量取個名稱

 

變量命名的規範

硬性要求(必須遵循的規則)

1.變量名只能由數字、字母、下劃線組成
2.變量名不得以數字開頭
3.變量名不能與關鍵字相同(eg:int,double,char,...在VS中,使用藍色標記關鍵字)
4.同一個函數中變量名不得相同

軟性要求

變量名首字母小寫
除第一個單詞外,其餘單詞首字母大寫
變量名要可以望文知義
*使用駝峯命名法,作到望文知義

 

2-04  變量的技巧

合併聲明
對多個同類型的重複聲明,能夠在一條聲明語句中完成
聲明時初始化
在聲明一個變量的同時,對變量進行初始化
變量三要素:數據類型,變量名,變量值

 

2-05  數據運算(1)

數據運算
數字運算
字符串運算
數字運算規則:支持運算:加(+)、減(-)、乘(*)、除(/)、求餘(%)
返回類型:與運算類型相同
int類型與int→int;double類型與double→double;double與int→double

 

 

2-06  數據運算(2)

字符串運算
數據類型 變量名;
等效→ 數據類型 變量名=變量值
變量名=變量值;
運算規則:拼接(+)→結果 字符串1字符串2
   ←
字符串 → 任意類型
(string) (int、double)
返回類型:字符串

 

 

2-07  數據運算案例分析

變量值的複製
代碼的實現:→ int x=1;
       int x=y;
變量的自增或自減
代碼實現:→ int x=1;
      x=x+5;
      x=x-4;
多個數據的運算:兩個以上的數據參與運算
int x=1,y=2;
x=x+y-1;
*注意每一步的返回類型
變量值交換
eg: int x=1,y=2;
  int z=x;
  x=y;
  y=z;

 

 

2-08  輸入語句

概念:在控制檯中獲取用戶輸入的內容
做用:程序暫停執行,等待用戶輸入
輸入語句的代碼書寫:Console.ReadLine();
*返回類型:string(將用戶輸入的內容造成字符串數據)
總結
讓程序暫停執行,等待用戶輸入
用戶按下回車鍵後,獲取用戶輸入的內容,類型爲string
用戶按下回車鍵後,程序繼續執行,直到主函數結束

 

2-09  類型轉換

1.將任意類型轉換爲string
轉換代碼:帶轉換的數據.ToString();
eg: int a=10;
string b=a.ToString;
返回類型:string
2.int類型與double類型的互轉
取值範圍小的數字類型→取值範圍大的數字類型(隱式轉換)
double的取值範圍>int的取值範圍
取值範圍大的數字類型→取值範圍小的數字類型(顯式轉換)
*int類型只能表示整數,顯示轉換(強制轉換)有可能形成數據丟失

3.string轉換爲數字

① string→int
int.Parse(待轉換的字符串)
返回類型:int
② string→double
double.Parse(待轉換的字符串)
返回類型:double
總結

 

 拓展:char類型的數值轉換

char轉爲int
在C#語言中,使用Unicode編碼來存儲字符。
好比漢字 ‘漢’,對應的Unicode編碼是27721,在計算機內存中,將使用汗27721對應的二進制來存儲。
所以,若是要把 ‘漢’ 轉換爲int類型的數字,轉換的結果就是27721。

爲何char類型的數據賦值給int類型的變量可使用隱式轉換呢?
是由於char類型的數據在內存中存儲時使用的是Unicode編碼,Unicode編碼佔16位(兩個字節),而int類型佔32位(4個字節)。所以,char類型的數據佔位少,取值範圍小,而int類型的數據佔位多,取值範圍大。因此,這樣的賦值是安全的,不會形成數據丟失,能夠隱式轉換。

 

int轉爲char

int類型的數據轉換爲char類型時必須使用顯示轉換。
char類型的取值範圍小於int,所以,將取值範圍大的int類型轉換爲取值範圍小的char類型是不安全的,因此要用顯示轉換。

 

 

 字符數據的運算

char類型的數據,在進行數學運算(+、-、*、/、%)時,會將它當作int進行運算,運算的返回類型是int。

也就是說,字符也能夠參與數學運算,在運算的時候,會把這個字符的編碼進行運算,運算的返回結果是一個整數int。

好比,’a’+’1’,這個代碼計算的是’a’的編碼加上’1’的編碼,返回的是編碼相加的整數。’a’的編碼是97,’1’的編碼是49,計算結果是一個int類型的整數146。

 

 2-10  圓的面積計算器

實現代碼

class Program
{
static void Main(string[] args)
{
Console.Write("請輸入圓的半徑(單位米):");
String input = Console.ReadLine();
double r = double.Parse(input);
double pi=3.14;
double area = pi * r * r;
double premeter = pi * r * 2;
string result = "圓的面積爲:" + area + "平方米";
Console.WriteLine(result);
result = "圓的周長爲:" + premeter + "米";
Console.WriteLine(result);
Console.Write("按回車鍵結束程序");
Console.ReadLine();
}
}

 

 

2-11  轉義符
在代碼中書寫一個斜槓(\),用於改變斜槓後出現字符的意義

常見的轉義符

舉例

 



2-12  數字類型

數字類型
整數類型
實數類型
位:是計算機的最小存儲單元,一位,能夠存放一個二進制數字
其實,位的概念很是簡單,咱們知道,在計算機中,不管是數字仍是字符,不管是圖片仍是音樂,存儲時,都是使用二進制格式的數字來存儲,這個二進制數字的其中一位就是「位」的概念。
好比,一個字符’a’,在unicode編碼下,它的二進制格式是:
0000 0000 0110 0001
那麼咱們能夠認爲,一個’a’字符,在計算機中佔16位。
以上,就是位的概念。
浮點數
float 單精度←最多7個有效數字(小數點後)
double 雙精度←最多15個有效數字
數值後綴
1.23→double
1.23f→float
1.23m→decimal
...
數字類型的使用原則
對於計算精度要求精度很高的實數,使用decimal(財務計算,科學實驗分析等)
對於內存使用要求苛刻的軟件,儘可能在保證取值範圍的前提下使用佔位較少的類型
若是沒有上述要求,整數用int,實數用double

位:是計算機的最小存儲單元,一位,能夠存放一個二進制數字
其實,位的概念很是簡單,咱們知道,在計算機中,不管是數字仍是字符,不管是圖片仍是音樂,存儲時,都是使用二進制格式的數字來存儲,這個二進制數字的其中一位就是「位」的概念。
好比,一個字符’a’,在unicode編碼下,它的二進制格式是:
0000 0000 0110 0001
那麼咱們能夠認爲,一個’a’字符,在計算機中佔16位。
以上,就是位的概念。

 

 

2-13  代碼註釋

概念:即便用一些描述語句,讓你的代碼便於閱讀和理解,註釋的內容,沒有任何實質功能,不參與編譯,只存在於源代碼中。
書寫代碼註釋
單行註釋→//註釋內容
多行註釋→

/*
註釋內容
註釋內容
*/
文檔註釋
何時使用註釋
代碼不易理解
代碼很是複雜
代碼量大
在團隊協做開發中,會有其餘人閱讀你的代碼


 2-14  軟件中的錯誤與調試

編譯錯誤(致使源代碼沒法經過編譯)
發現錯誤:查看開發工具VS的錯誤列表
解決錯誤:根據錯誤提示,作出相應修改
錯誤特色:容易發現,容易修改
運行錯誤(在運行過程當中報錯)
發現錯誤:在調試模式下運行,並運行到報錯的語句
解決錯誤:根據錯誤提示,作出相應修改
錯誤特色:難以發現,難以修改
邏輯錯誤(運行結果和預期不符)
發現錯誤:仔細覈對運行結果,看與預期是否一致
解決錯誤:使用VS的斷點調試,檢查每一步的執行結果
(在代碼前面打上打上一個紅色的點)
錯誤特色:極難發現,極難修改

 

 

 

第三章  運算符和表達式

3-01   認識運算符
概念:又叫操做符,是一個用於運算的符號,它做用於一個或多個操做數(操做數:參與運算的數據)
運算符的分類
按操做的數量
一元(目)預算符 ← 做用於一個操做數
二元(目)預算符 ←做用於兩個操做數
三元(目)預算符 ←做用於三個操做數
按運算符的功能
算術運算符 ← 用於數學運算
邏輯運算符 ← 用於判斷真假
位運算符 ← 用於二進制運算
其餘

 

3-02   常見的運算符:小括號
書寫方式 ( )
功能做用
類型轉換
改變運算順序
函數調用


3-03   常見運算符:算術運算符
加加運算符
書寫方式
變量名++
1.計算返回結果,與變量相同
2.將變量的值自增1
++變量名
1.計算返回結果,爲變量值加1
2.將變量的值自增1
減減運算符
書寫方式
變量名--
1.計算返回結果,與變量相同
2.將變量的值自減1
--變量名
1.計算返回結果,爲變量值減1
2.將變量的值自減1
常見的算術運算符:+ - * / % ++ --
運算順序:++ -- → * / % → + -


3-04  常見運算符:賦值運算符
變量=運算代碼(將運算代碼賦值給變量)
賦值運算符:= += -= *= /= %=

 

3-05   常見運算符:邏輯運算符
==              !=                >     >=   <    <=   &&   ||   !
等於 不等於 大於 大於等於 小於 小於等於 而且 或者 非
&&:對兩個bool類型進行運算,運算的結果:真真爲真,其餘爲假:
||:對兩個bool類型進行運算,運算的結果:假假爲假,其餘爲真;
!:一元運算符,對一個bool類型的數據求反。數據爲真,其結果爲假;數據爲假,其結果爲真。
返回類型:bool (布爾)→ true 或者false

 

3-06   常見運算符:三目運算符
又叫作三元運算符,他須要三個操做數參與運算
書寫方式:操做數1 ? 操做數2 : 操做數3
↓ ↘ ↙ △(? : 爲英文符號)

bool類型 相同類型
返回結果:若是操做數1斷定結果爲真,則將操做數2做爲返回結果;
若是操做數1斷定結果爲假,則將操做數3做爲返回結果。
舉例:

 

3-07 位運算符(只作瞭解)
用於對數字進行二進制運算
位運算符
&與 11取1,其餘取0
|或 00取0,其餘取1
^異或 相同取0,不一樣取1
<<左移 左移指定的位數
>>右移 右移指定的位數
~取補 1變0,0變1

 

3-08   表達式
一條有意義的語句,而且該語句至少包含一個操做數和一個操做符。
每個表達式,都有一個返回類型。
每一個表達式均可以與其餘表達式進行運算,只要類型符合要求。
如圖

 


常見表達式返回類型總結
①聲明變量:void(無返回類型)
②變量賦值:返回類型和變量類型相同
③算術運算:返回類型爲取值返回大的類型
④邏輯運算:bool(全部的邏輯運算(>、<、=、!=、<=、>=、&&、||、!),返回類型固定爲bool)
⑤類型轉換:返回類型爲轉換的目標
⑥字符串拼接:string
⑦函數調用:
輸出語句:void
輸入語句:string
ToString:string
xxx.Parse:xxx

 

3-09   運算符優先級
使用多個運算符的常見場景
賦值運算 (永遠最後運行)
數學運算:按照數學中的運算順序進行:先運行括號,有嵌套則從裏到外運行,在運行乘除,求餘;最後運行加減
類型轉換(指顯示轉換)和函數調用:先運行函數調用,再進行類型轉換
邏輯運算:將&&和||符號兩端的表達式看作一個總體
三目運算:表達式1 ? 表達式2 : 表達式3
其餘:使用小括號或分開書寫來控制運算順序


3-10   健康計算器
健康計算器實現代碼:

/*
標準體重計算公式
男:(身高-80)*0.7
女:(身高-70)*0.6
健康:在標準體重正負10%範圍內
偏胖:高於標準體重10%
偏瘦:低於標準體重10%
*/
Console.Write("請輸入性別(男或女):");
string sex=Console.ReadLine();
Console.Write("請輸入身高(釐米):");
double height = double.Parse(Console.ReadLine());
Console.Write("請輸入體重(千克)");
double weight = double.Parse(Console.ReadLine());
double standardweight =sex== "男" ? (height - 80) * 0.7 : (height - 70) * 0.6;
double minhealthweight = standardweight * 0.9;
double maxhealthweight = standardweight * 1.1;
string result=weight<=minhealthweight &&weight >=maxhealthweight?"身體很是健康,請繼續保持!":
(weight<minhealthweight?"身體偏瘦,請補充養分":"身體偏胖,請多運動");
Console.WriteLine(result);
Console.ReadLine();

 

C#基礎(上)結束。

相關文章
相關標籤/搜索