Csharp+Asp.net系列圖文說明教程(5)
發(fā)表時間:2024-06-15 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本教程參考C#和ASP.NET程序設(shè)計教程撰寫,有什么不足之處請大家指出,或在老貓的理想BLOG留言。 長假就要過去了。錢包也空空如也了,又要投入讓人生畏的緊張工作中了... 感慨雖然很多,可是教程還是要繼續(xù)的寫,先發(fā)幾句牢騷。^_^,不過教程可能以后要寫的慢些了,因?yàn)樾挠杏喽Σ蛔阊!不說廢...
本教程參考C#和ASP.NET程序設(shè)計教程撰寫,有什么不足之處請大家指出,或在老貓的理想BLOG留言。
長假就要過去了。錢包也空空如也了,又要投入讓人生畏的緊張工作中了... 感慨雖然很多,可是教程還是要繼續(xù)的寫,先發(fā)幾句牢騷。^_^,不過教程可能以后要寫的慢些了,因?yàn)樾挠杏喽Σ蛔阊荆〔徽f廢話進(jìn)入正題:
有網(wǎng)友說教程過于繁瑣,呵呵,下面正好要分析一下流程控制語句,有C程序設(shè)計基礎(chǔ)的就略過這段,考慮有新手還是簡要的介紹一下,詳細(xì)還請參閱譚浩強(qiáng)教授的《C語言程序設(shè)計》一書吧,很強(qiáng),值得一看。
c#中,有兩種選擇語句:if語句、switch語句。
1.if (布爾表達(dá)式)
{
內(nèi)嵌語句;
}
else if(布爾表達(dá)式)
{
內(nèi)嵌語句;
}
else
{
內(nèi)嵌語句;
}//當(dāng)布爾表達(dá)式的值為真時,執(zhí)行if后面的內(nèi)嵌語句。
還是舉個小例子吧,要不總覺得不夠透徹。注意例子中穿插介紹的程序入口點(diǎn)帶參數(shù)的Main()方法、還有char的IsDigit方法。
using System;
class MikeCat
{
public static void Main(string[] args)
{
if(args.Length!=1)//判斷參數(shù)個數(shù)的布爾運(yùn)算
{
Console.WriteLine("命令行參數(shù)只能是一個");
}
else
{
char c=args[0][0];//此處想和大家討論:第一維感覺是第幾個參數(shù)的索引,第二維是某個參數(shù)的字符數(shù)索引。不知是否正確,沒有查到相關(guān)資料,大家怎么看??
if((c>='A')&&(c<='Z'))
{
Console.WriteLine("{0}是大寫字母",c);
}
if((c>='a')&&(c<='z'))
{
Console.WriteLine("{0}是小寫字母",c);
}
if(Char.IsDigit(c))
{
Console.WriteLine("{0}是數(shù)字",c);
}
}
}
}
Main 方法是程序的入口點(diǎn),程序控制在該方法中開始和結(jié)束。該方法在類或結(jié)構(gòu)的內(nèi)部聲明。它必須為靜態(tài)的。它可以具有 void 或 int 返回類型。在 Main 方法中創(chuàng)建對象和調(diào)用其他方法。聲明 Main 方法時既可以不使用參數(shù),也可以使用參數(shù)。
Main 方法可以是 void 類型:
static void Main()
{
}
它還可以返回 int:
static int Main()
{
return 0;
}
Main 方法可以使用參數(shù),在這種情況下它采用下列形式之一:
static int Main(string[] args)
static void Main(string[] args)
Main 方法的參數(shù)是表示命令行參數(shù)的 string 數(shù)組。通常通過測試 Length 屬性來檢查參數(shù)是否存在,例如:
if (args.Length == 0)
{
Console.WriteLine("Please enter a numeric argument.");
return 1;
}
還可以使用 Convert 類或 Parse 方法將字符串參數(shù)轉(zhuǎn)換為數(shù)值類型。例如,下面的語句使用 Int64 類上的 Parse 方法將字符串轉(zhuǎn)換為 long 型數(shù)字:
long num = Int64.Parse(args[0]);
也可以使用別名為 Int64 的 C# 類型 long:
long num = long.Parse(args[0]);
還可以使用 Convert 類的方法 ToInt64 完成同樣的工作:
long num = Convert.ToInt64(s);
Char.IsDigit 方法
指示某個 Unicode 字符是否屬于十進(jìn)制數(shù)字類別。
public static bool IsDigit(char);
指示指定字符串中位于指定位置處的字符是否屬于十進(jìn)制數(shù)字類別。
public static bool IsDigit(string, int);
using System;
public class IsDigitSample {
public static void Main() {
char ch = '8';
Console.WriteLine(Char.IsDigit(ch)); // Output: "True"
Console.WriteLine(Char.IsDigit("sample string", 7)); // Output: "False"
}
}
2.switch(控制表達(dá)式)
{
case 常量表達(dá)式:
內(nèi)嵌語句;
[break;]
[goto case 常量表達(dá)式]
...
default:
內(nèi)嵌語句;
}//switch語句是if語句的變種。如果把一個變量或表達(dá)式與許多不同的值進(jìn)行比較并根據(jù)不同的比較結(jié)果執(zhí)行不同的程序段。
注意c#中如果要想實(shí)現(xiàn)象c/c++中那樣的直達(dá)功能,則要使用goto case和goto default跳轉(zhuǎn)語句。
循環(huán)語句用于重復(fù)執(zhí)行一行或多行代碼。c#中有四種循環(huán)語句:while、do...while、for、foreach語句。
1.while(布爾表達(dá)式)
{
內(nèi)嵌語句;
}//計算布爾表達(dá)式的值。當(dāng)布爾表達(dá)式為真時,執(zhí)行一遍內(nèi)嵌語句。
不舉例子了,說說需要注意的部分吧:while語句是有條件地重復(fù)執(zhí)行內(nèi)嵌語句0次或多次。在while語句中,可以用break語句立即結(jié)束循環(huán)。另外也可以使用continue語句停止內(nèi)嵌語句的執(zhí)行,而繼續(xù)下一次循環(huán)。
2.do...while語句
區(qū)別與while語句首先要執(zhí)行一次內(nèi)嵌語句,然后才檢查布爾表達(dá)式。
3.for 語句
for(initializer;condition;iterator)
{
內(nèi)嵌語句;
}//initializer、condition、iterator均是可選項(xiàng)。initializer用于初始化循環(huán)控制變量,此變量可以有一個或多個(用逗號隔開);condition為循環(huán)控制條件,也可以有一個或多個語句;iterator按規(guī)律改變循環(huán)控制變量的值。
4.foreach語句
foreach語句從c#中新引入的,c/c++中沒有此語句。foreach用于枚舉集合中每個元素,并對每個元素執(zhí)行內(nèi)嵌語句。
foreach(type identifier in expression)
{
內(nèi)嵌語句;
}//類型type和標(biāo)識符identifier用來聲明循環(huán)變量,表達(dá)式對應(yīng)要枚舉的集合。
using System;
using System.Collections;
class MikeCat
{
public static void Main()
{
IDictionary envvars=Environment.GetEnvironmentVariables();
Console.WriteLine("共有{0}個環(huán)境變量",envvars.Keys.Count);
//循環(huán)輸出每個環(huán)境變量及其值
foreach(string k in envvars.Keys)
{
Console.WriteLine("{0}={1}",k,envvars[k].ToString());//或者用envvars.Value
}
}
}
本來還想分析一下異?刂坪皖A(yù)處理指令?墒菦]收住還是寫了這么長,下次分析這兩部分,希望大家關(guān)注!本次教程中的疑問希望