C#程式設計基礎第三課:C#中的運算子和分支語句
知識點:運算子、if結構、if-else語句
一、運算子
運算子用於執行程式程式碼運算,會針對一個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是“+”。在vb2005中運算子大致可以分為5種類型:算術運算子、連線運算子、關係運算符、賦值運算子和邏輯運算子。。
1、算數運算子:用來處理四則運算的符號,這是最簡單,也最常用的符號,尤其是數字的處理,幾乎都會使用到算術運算子號。
假設變數 a 的值為 10,變數 b的值為 20,則:
運算子 |
描述 |
例項 |
+ |
把兩個運算元相加 |
A + B 將得到 30 |
- |
從第一個運算元中減去第二個運算元 |
A - B 將得到 -10 |
* |
把兩個運算元相乘 |
A * B 將得到 200 |
/ |
分子除以分母 |
B / A 將得到 2 |
% |
取模運算子,整除後的餘數 |
B % A 將得到 0 |
++ |
自增運算子,整數值增加 1 |
A++ 將得到 11 |
-- |
自減運算子,整數值減少 1 |
A-- 將得到 9 |
static void Main(string[] args) { //宣告a和b int a = 3; int b = 10; //求加法、除法、取餘 int c = b + a; int d = b / a; int e = b % a; Console.WriteLine("c="+c); Console.WriteLine("d=" + d); Console.WriteLine("e=" + e); Console.ReadLine(); }
2、關係運算符:假設變數 a 的值為 10,變數 b的值為 20,則:
運算子 |
描述 |
例項 |
== |
檢查兩個運算元的值是否相等,如果相等則條件為真。 |
(A == B) 不為真。 |
!= |
檢查兩個運算元的值是否相等,如果不相等則條件為真。 |
(A != B) 為真。 |
> |
檢查左運算元的值是否大於右運算元的值,如果是則條件為真。 |
(A > B) 不為真。 |
< |
檢查左運算元的值是否小於右運算元的值,如果是則條件為真。 |
(A < B) 為真。 |
>= |
檢查左運算元的值是否大於或等於右運算元的值,如果是則條件為真。 |
(A >= B) 不為真。 |
<= |
檢查左運算元的值是否小於或等於右運算元的值,如果是則條件為真。 |
(A <= B) 為真。 |
3、邏輯運算子:假設變數 A 為布林值 true,變數 B 為布林值 false,則:
運算子 |
描述 |
例項 |
&& |
稱為邏輯與運算子。如果兩個運算元都非零,則條件為真。 |
(A && B) 為假。 |
|| |
稱為邏輯或運算子。如果兩個運算元中有任意一個非零,則條件為真。 |
(A || B) 為真。 |
! |
稱為邏輯非運算子。用來逆轉運算元的邏輯狀態。如果條件為真則邏輯非運算子將使其為假。 |
!(A && B) 為真。 |
4、賦值運算子:
運算子 |
描述 |
例項 |
= |
簡單的賦值運算子,把右邊運算元的值賦給左邊運算元 |
C = A + B 將把 A + B 的值賦給 C |
+= |
加且賦值運算子,把右邊運算元加上左邊運算元的結果賦值給左邊運算元 |
C += A 相當於 C = C + A |
-= |
減且賦值運算子,把左邊運算元減去右邊運算元的結果賦值給左邊運算元 |
C -= A 相當於 C = C - A |
*= |
乘且賦值運算子,把右邊運算元乘以左邊運算元的結果賦值給左邊運算元 |
C *= A 相當於 C = C * A |
/= |
除且賦值運算子,把左邊運算元除以右邊運算元的結果賦值給左邊運算元 |
C /= A 相當於 C = C / A |
%= |
求模且賦值運算子,求兩個運算元的模賦值給左邊運算元 |
C %= A 相當於 C = C % A |
程式碼練習:
static void Main(string[] args)
{
//演算法練習1:輸入整數a和b,輸出它們的和
Console.Write("請輸入整數a:");//提示使用者輸入整數a
int a = int.Parse(Console.ReadLine());//將使用者輸入的資料,轉換為整數型別,並賦值給變數a
Console.Write("請輸入整數b:");
int b = int.Parse(Console.ReadLine());
int c;//宣告一個整數變數c,用來儲存結果
c = a + b;//將a+b的結果賦值給c
Console.WriteLine("a+b="+c);//輸出結果
Console.ReadLine();
}
自我練習:輸入圓的半徑r,輸出這個圓的面積。
二、程式的3種結構
通常的計算機程式總是由若干條語句組成,從執行方式上看,從第一條語句到最後一條 語句完全按順序執行,是簡單的順序結構;若在程式執行過程當中,根據使用者的輸入或中間 結果去執行若干不同的任務則為選擇結構;如果在程式的某處,需要根據某項條件重複地執 行某項任務若干次或直到滿足或不滿足某條件為止,這就構成迴圈結構。大多數情況下,程式都不會是簡單的順序結構,而是順序、選擇、迴圈三種結構的複雜組合。
在計算機中,我們可以用圖形的方式來表示這個程式執行的過程,這種圖形叫:流程圖。
1、順序結構
順序結構的程式設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
特點:從第一條語句,到最後一條語句,完全按順序執行。
2、選擇結構
選擇結構用於判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程式的流程。
特點:選擇結構中的處理語句並非總是被程式執行,只有滿足了處理條件後,才會被執行。否則,程式將會跳過這些處理語句二繼續下面的流程。
3、迴圈結構
迴圈結構是指在程式中需要反覆執行某個功能而設定的一種程式結構。它由迴圈體中的條件,判斷繼續執行某個功能還是退出迴圈。
特點:迴圈結構可以減少源程式重複書寫的工作量,用來描述重複執行某段演算法的問題,這是程式設計中最能發揮計算機特長的程式結構 。迴圈結構可以看成是一個條件判斷語句和一個向迴轉向語句的組合。
三、選擇結構-簡單if語句、if-else語句
1、簡單if語句
選擇結構就是需要根據不同條件進行判斷,然後執行不同的操作。
語法:
if (條件){
程式碼塊1
}
程式碼塊2
- if是用於條件判斷的關鍵字,翻譯過來是如果的意思,如果條件成立就怎麼樣。
- 關鍵字if後小括號裡的條件是一個表示式,而且表示式的值必須為true或false。
- 程式執行時,先判斷條件。當結果為true時,程式先執行大括號裡的語句(程式碼塊1),再執行if結構後面的程式碼(程式碼塊2)。
- 當結果為false時,不執行大括號裡的程式碼塊1,直接執行if結構後面的程式碼(程式碼塊2)。
static void Main(string[] args)
{
//程式選擇結構-簡單if語句
//如果成績大於90分,輸出“成績優秀”
Console.WriteLine("請輸入考試成績:");
double result = double.Parse(Console.ReadLine());//將使用者輸入成績,賦值給變數result
if (result > 90)//判斷成績是否大於90分
{
Console.WriteLine("成績優秀");//條件為真時,執行這條語句
}
Console.ReadLine();
}
程式碼練習1(關係運算符的運用):
static void Main(string[] args)
{
//程式選擇結構-簡單if語句
//輸入天氣,如果下雨,輸出“不集合”
Console.WriteLine("請輸入今天的天氣情況:晴天、下雨、陰天");
string weather = Console.ReadLine();
if (weather=="下雨")//判斷今天的天氣是否下雨(注意字串要用英文雙引號,==代表等值)
{
Console.WriteLine("今天不集合");
}
Console.ReadLine();
}
程式碼練習2(邏輯運算子的運用):
static void Main(string[] args)
{
/*
* 本次計算機考試成績規定:
* 筆試成績大於80並且機試成績大於90為優秀
*/
Console.Write("請輸入筆試成績");
double written = double.Parse(Console.ReadLine());
Console.Write("請輸入機試成績");
double lab = double.Parse(Console.ReadLine());
if (written > 80 && lab > 90)
{
Console.WriteLine("成績優秀");
}
}
2、if-else語句
if-else選擇結構可以分別處理同時存在條件成立和不成立時操作的情況,else是否則的意思,if-else就是如果條件成立就怎麼樣,否則就怎麼樣,if-else的語法是:
if(條件){
語句1
}else{
語句2
}
執行的過程就是,當條件成立就執行if後面的語句,當條件不成立就執行else後面的語句。大家可以看流程圖中,判斷結束後,成立和不成立的分支上都有執行語句。
static void Main(string[] args)
{
//程式選擇結構-簡單if語句
//如果成績大於90分,輸出“成績優秀”,否則輸出“請繼續努力!”
Console.WriteLine("請輸入考試成績:");
double result = double.Parse(Console.ReadLine());//將使用者輸入成績,賦值給變數result
if (result > 90)//判斷成績是否大於90分
{
Console.WriteLine("成績優秀");//條件為真時,執行這條語句
}
else//條件為假時,執行else裡面的語句
{
Console.WriteLine("請繼續努力!");
}
Console.ReadLine();
}
運用:判斷輸入資料是奇數還是偶數
分析題目:①由使用者輸入資料;②怎麼判斷是奇數還是偶數?(對2取餘數,餘數等於0);③等號==的使用;④判斷語句if-else
static void Main(string[] args)
{
//判斷輸入資料是奇數還是偶數
Console.Write("請輸入整數a=");
int a = int.Parse(Console.ReadLine());//將使用者輸入的資料,賦值給變數a
int b = a % 2; //對變數a取餘,並將結果,賦值給變數b
if (b == 0) //判斷變數b是否等於0
{
Console.WriteLine(a+"是偶數"); //條件為真,輸出偶數
}
else
{
Console.WriteLine(a+"是奇數"); //條件為假,輸出奇數
}
Console.ReadLine();
}
練習1:將自我介紹的程式進行完善。(如果使用者輸入性別為女,則提示小姐姐你好。)
練習2:輸入兩個數,進行大小判斷。
思考:如果輸入三個數,如何判斷較大的數。
延伸知識點:
Console.readkey():監聽鍵盤事件,可以理解為按任意鍵執行。
Console.read():讀取鍵盤輸入的第一個字元,返回ASCII值。回車退出
Console.readline():讀取所有字元,返回字串。回車退出
Console.Write():控制檯輸出,不換行。
Console.Writeline():控制檯輸出,換行。
第四課:多重if語句、巢狀if語句、Switch結構