本教程参考C#和ASP.NET程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想BLOG留言。
长假就要过去了。钱包也空空如也了,又要投入让人生畏的紧张工作中了... 感慨虽然很多,可是教程还是要继续的写,先发几句牢骚。^_^,不过教程可能以后要写的慢些了,因为心有余而力不足丫!不说废话进入正题:
有网友说教程过于繁琐,呵呵,下面正好要分析一下流程控制语句,有C程序设计基础的就略过这段,考虑有新手还是简要的介绍一下,详细还请参阅谭浩强教授的《C语言程序设计》一书吧,很强,值得一看。
c#中,有两种选择语句:if语句、switch语句。
1.if (布尔表达式)
{
内嵌语句;
}
else if(布尔表达式)
{
内嵌语句;
}
else
{
内嵌语句;
}//当布尔表达式的值为真时,执行if后面的内嵌语句。
还是举个小例子吧,要不总觉得不够透彻。注意例子中穿插介绍的程序入口点带参数的Main()方法、还有char的IsDigit方法。
using System;
class MikeCat
{
public static void Main(string[] args)
{
if(args.Length!=1)//判断参数个数的布尔运算
{
Console.WriteLine("命令行参数只能是一个");
}
else
{
char c=args[0][0];//此处想和大家讨论:第一维感觉是第几个参数的索引,第二维是某个参数的字符数索引。不知是否正确,没有查到相关资料,大家怎么看??
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}是数字",c);
}
}
}
}
Main 方法是程序的入口点,程序控制在该方法中开始和结束。该方法在类或结构的内部声明。它必须为静态的。它可以具有 void 或 int 返回类型。在 Main 方法中创建对象和调用其他方法。声明 Main 方法时既可以不使用参数,也可以使用参数。
Main 方法可以是 void 类型:
static void Main()
{
}
它还可以返回 int:
static int Main()
{
return 0;
}
Main 方法可以使用参数,在这种情况下它采用下列形式之一:
static int Main(string[] args)
static void Main(string[] args)
Main 方法的参数是表示命令行参数的 string 数组。通常通过测试 Length 属性来检查参数是否存在,例如:
if (args.Length == 0)
{
Console.WriteLine("Please enter a numeric argument.");
return 1;
}
还可以使用 Convert 类或 Parse 方法将字符串参数转换为数值类型。例如,下面的语句使用 Int64 类上的 Parse 方法将字符串转换为 long 型数字:
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 字符是否属于十进制数字类别。
public static bool IsDigit(char);
指示指定字符串中位于指定位置处的字符是否属于十进制数字类别。
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(控制表达式)
{
case 常量表达式:
内嵌语句;
[break;]
[goto case 常量表达式]
...
default:
内嵌语句;
}//switch语句是if语句的变种。如果把一个变量或表达式与许多不同的值进行比较并根据不同的比较结果执行不同的程序段。
注意c#中如果要想实现象c/c++中那样的直达功能,则要使用goto case和goto default跳转语句。
循环语句用于重复执行一行或多行代码。c#中有四种循环语句:while、do...while、for、foreach语句。
1.while(布尔表达式)
{
内嵌语句;
}//计算布尔表达式的值。当布尔表达式为真时,执行一遍内嵌语句。
不举例子了,说说需要注意的部分吧:while语句是有条件地重复执行内嵌语句0次或多次。在while语句中,可以用break语句立即结束循环。另外也可以使用continue语句停止内嵌语句的执行,而继续下一次循环。
2.do...while语句
区别与while语句首先要执行一次内嵌语句,然后才检查布尔表达式。
3.for 语句
for(initializer;condition;iterator)
{
内嵌语句;
}//initializer、condition、iterator均是可选项。initializer用于初始化循环控制变量,此变量可以有一个或多个(用逗号隔开);condition为循环控制条件,也可以有一个或多个语句;iterator按规律改变循环控制变量的值。
4.foreach语句
foreach语句从c#中新引入的,c/c++中没有此语句。foreach用于枚举集合中每个元素,并对每个元素执行内嵌语句。
foreach(type identifier in expression)
{
内嵌语句;
}//类型type和标识符identifier用来声明循环变量,表达式对应要枚举的集合。
using System;
using System.Collections;
class MikeCat
{
public static void Main()
{
IDictionary envvars=Environment.GetEnvironmentVariables();
Console.WriteLine("共有{0}个环境变量",envvars.Keys.Count);
//循环输出每个环境变量及其值
foreach(string k in envvars.Keys)
{
Console.WriteLine("{0}={1}",k,envvars[k].ToString());//或者用envvars.Value
}
}
}
本来还想分析一下异常控制和预处理指令。可是没收住还是写了这么长,下次分析这两部分,希望大家关注!本次教程中的疑问希望大家一同帮助分析。