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