C#編程自學之流程控制語句
在前面的文章中我們不難看出來,我們程序的執(zhí)行順序是從上到下順序執(zhí)行的,那么有時候我們需要程序在某個條件成立時,執(zhí)行指定的代碼片段,那么怎么樣來控制這樣流程呢?這個就是我們今天這篇文章所需要討論的。那么開始吧!
一、if esle 語句
1.關系型運算符
說到分支語句必定會牽扯到條件,例如當滿足一個條件的時候去執(zhí)行指定的代碼段,那么如何構建條件?這個時候我們就需要先了解一下運算符中的《關系型運算符》!請看下表:
看完表格后我們來介紹下什么是關系型運算符,關系型運算符就是對我們程序中的數據進行比較,當滿足條件就返回一個為真的Bool類型變量。注意:C#中的關系運算符只能返回true與false。
那么我們在來看看關系運算符之間的優(yōu)先級,假如我們將關系運算符分為兩個級別的優(yōu)先級為:一級(高優(yōu)先級)二級(低優(yōu)先級)
那么一級的有: < , > , <= , >=
二級的有: == , !=
由此看來當多個關系運算符出現(xiàn)在表達式中時,程序會根據優(yōu)先級級別來確定先比較哪一部分!
請看如下程序:
if (10 > 5 == 10 < 5) { } //程序判斷步驟: 因為運算符 > , < 的優(yōu)先級高于 == //那么程序解析如下 if([10大于5返回true]->true == [10不小于5返回false]->false) //那么下一步解析如下 if(true == false) [因為true 不等于false ]所以最終表達式返回false條件不成立
2.if、else
了解完關系運算符后我們來看看C#控制程序流程的語句if、else,if、else的意思就是如果、那么。從字面意思我們可以看出來這組語句可以用來幫助我們判斷程序中的邏輯。例如 如果 a > b 的話,在屏幕打印a+ b的和,那么(那么的意思就是a > b不成立的時候)。我們還是來看個例子吧!
假如:需要設計一個程序來讓用戶輸入兩個數字平且計算兩個數字的和,當和大于10的時候在屏幕中打印“a + b的和大于10” 否則我們打印 “a + b 的和小于10”!
Console.Write("請輸入a的值:"); int a = Convert.ToInt32(Console.ReadLine()); Console.Write("請輸入b的值:"); int b = Convert.ToInt32(Console.ReadLine()); //判斷a + b 的和是否大于10 if (a + b > 10) //注意算數運算符的優(yōu)先級高于關系運算符所以表達式先計算a+b 后判斷是否大于10 { //如果大于10執(zhí)行這里 Console.WriteLine("a + b 的和大于10"); } else { //否則執(zhí)行這里 Console.WriteLine("a + b 的和小于10"); }
好的!那么我們來分析一下,前面的代碼就不說了相信大家都可以看懂,我們就從第7行開始看,這時假設用戶已經數據了數據a為6 、b為5!
第7行if語句的表達式中根據運算符優(yōu)先級先計算a + b的和為11.
緊接著判斷11是否大于10 (11 > 10),11明顯大于10 所以表示返回true當表達式返回true就執(zhí)行if下面{}中的代碼段, 所以程序會輸出 “a + b 的和大于10”
如果用戶數輸入a = 5 、b=3 那么和不大于10 程序自然而然也就輸出“a + b 的和小于10”
以下是兩種情況的輸出結果:
3.條件運算符
看完了C#基本的分支語句之后我們可能會想到,當我一次判斷中出現(xiàn)多個條件時應該如何處理?例如條件為:當姓名為王波洋并且年齡為24時,這種條件我們應該如何表示?這時條件運算符又閃亮登場啦。當有了條件運算符時構建這種多條件的表達式就輕松了許多,那么我們來看看C#都有哪些條件運算符:
還是用一個例子帶過,需求如下:用戶輸入年齡,當年齡在20 30中間顯示“你很年輕”, 否則就顯示 “你的年齡不滿足我的要求”,代碼如下:
Console.Write("請輸入您的年齡:"); int age = Convert.ToInt32(Console.ReadLine()); //判斷年齡是否大于20 在判斷年齡是否小于30 //隨后在進行邏輯運算 if (age > 20 && age < 30) //注意關系運算符的優(yōu)先級高于邏輯運算符所以表達式先判斷age >20 與 age < 30 后進行邏輯與 { //如果年齡大于20小于30執(zhí)行這里 Console.WriteLine("你很年輕"); } else { //否則執(zhí)行這里 Console.WriteLine("你的年齡不滿足我的要求"); }
繼續(xù)分析:從第6行開始看:
1. 關系運算符優(yōu)先級高于邏輯運算符。那么先判斷 age 是否大于 20 和 age 是否小于 30,假設此時age = 25,那么(age > 20) == true 、(age < 30) == true
2.此時表示為if(true && true),根據上面表格我們可以知道,邏輯與在兩邊都為true時返回true所以表達式成立
3.輸出結果 "你很年輕" 當age = 35時輸出結果是"你的年齡不滿足我的要求"
二、switch case語句
了解萬if、esle后我們來看C#提供的另一種分支語句switch、case,它是一種將條件表達式預定義好的一種分支結構。例如設計一個點餐程序,我們的菜單有 1.漢堡 2.牛排 3.披薩 ,我們需要當用戶輸入三個食品的序號來為可以提供食物。那么使用switch、case分支語句的代碼如下:
Console.WriteLine("/**********************************/"); Console.WriteLine("本店提供:1.漢堡 2.牛排 3.披薩"); Console.Write("選擇需要的食物:"); string num = Console.ReadLine(); //判斷num switch (num) { case "1"://當輸入的為1時執(zhí)行這里case與下面最近的break之間的代碼 Console.WriteLine("您點的漢堡請慢用"); break; case "2"://當輸入的為2時執(zhí)行這里case與下面最近的break之間的代碼 Console.WriteLine("您點的牛排請慢用"); break; case "3"://當輸入的為3時執(zhí)行這里case與下面最近的break之間的代碼 Console.WriteLine("您點的披薩請慢用"); break; default: //當輸入的值case中未聲明時執(zhí)行這里default與下面最近的break之間的代碼 Console.WriteLine("本店無您所需的食品"); break; }
那么我們繼續(xù)來分析一下,搜先來看switch 與 case的語法,當switch后面括號中的值與case中定義的值一致時執(zhí)行對應case中的代碼到碰見break為止。default的意思是當switch后面括號中的值未能與case中的值匹配上時,執(zhí)行default中的代碼到碰見break為止。那么由此分析得出:
1.當用戶輸入1時代表選擇的漢堡,switch(1)
2.在case中尋找是否有1,尋找到case "1" 執(zhí)行case "1"中的代碼到碰見break為止
3.打印"您點的漢堡請慢用" 當用戶輸入的值在case中為定義時例如5,那么程序必然輸出"本店無您所需食品"。
運行結果如下:
本章介紹了C#的流程控制語句,學習重點在對條件判斷語句、循環(huán)語句、循環(huán)控制語句的理解和掌握,并熟悉使用對象控制語句。本章的難點在于對這些流程控制語句的靈活應用和某些流程控制語句間區(qū)別的理解。
相關文章
用C#在本地創(chuàng)建一個Windows帳戶(DOS命令)
用C#在本地創(chuàng)建一個Windows帳戶(DOS命令)...2007-03-03