资源描述
学习情境一:“C#入门:设计控制台应用程序-Hello World”学习领域C#程序设计总课时48学习情境C#入门:设计控制台应用程序-Hello World参考课时3教学安排:第2学期学习任务: .NET Framework的体系结构及其组件。 熟悉VS.NET 2008,并能够使用该工具来创建C#应用程序。学习目标: 了解.NET Framework 的结构。 理解.NET Framework 的基本概念 CLR ;JIT;CTS;MSIL 了解 .NET Framework 命名空间 了解C#程序的基本结构 熟悉Visual Studio.NET的配置 熟悉如何创建一个控制台应用程 了解.NET Framework 的结构。 理解.NET Framework 的基本概念 熟悉Visual Studio.NET的配置 熟悉如何创建一个控制台应用程主要内容及标准:单项能力评价内容评价标准.NET Framework的体系结构及其组件。1. .NET Framework的体系结构2. 理解.NET Framework 的基本概念1. 了解.NET Framework 的结构。2. 熟悉Visual Studio.NET的配置3. 熟悉如何创建一个控制台应用程熟悉VS.NET 2008,并能够使用该工具来创建C#应用程序。1. 熟悉Visual Studio.NET的配置2. 熟悉如何创建一个控制台应用程教学方法建议:讲述法 项目式教学法 任务教学法 实践操作法考核与评价:1.基本知识技能应用评价2.任务完成情况评价3.工作态度评价教学环境:微机、白板、投影仪、多媒体教学系统、多媒体课件、网络教学资源Win2000、IIS、Dreamweaver、Visual Studio 2008、Access、SQL Server教师需要的能力与知识:1. 熟悉.NET Framework 的结构。 2. 理解.NET Framework 的基本概念 CLR ;JIT;CTS;MSIL 3. 掌握 .NET Framework 命名空间 4. 掌握C#程序的基本结构 5. 熟悉Visual Studio.NET的配置 6. 熟悉如何创建一个控制台应用程学生需要的能力与知识:1. 了解.NET Framework 的结构。 2. 理解.NET Framework 的基本概念 3. 了解 .NET Framework 命名空间 4. 了解C#程序的基本结构 5. 熟悉Visual Studio.NET的配置 6. 熟悉如何创建一个控制台应用程学习情境二:“C#基础:结构化程序设计实现学生成绩从小到大的排序 即”冒泡排序”学习领域C#程序设计总课时48学习情境C#基础:结构化程序设计参考课时15教学安排:第2学期学习任务: C#程序结构 控制台的输入/输出操作 C#中数据类型 常量和变量、变量的赋值 C#常用的运算符和表达式 C#程序的基本结构、标识符的相关概念 C#的主要数据类型以及类型标识符 使用C#中的运算符,选择结构和循环结构 定义和使用数组,了解结构和枚举 熟悉C#中的预处理指令 熟悉C#中的字符串处理 实现学生成绩从小到大的排序“冒泡排序”应用程序。学习目标: 掌握控制台的输入/输出操作 熟悉C#的主要数据类型以及类型标识符 熟悉数据类型的转换 熟悉常量和变量、变量的赋值、常用的运算符 使用C#中的运算符,选择结构和循环结构 定义和使用数组,了解结构和枚举难点: 结构化程序设计的应用。 C的结构和枚举 熟悉数组的定义和使用 嵌套循环的应用主要内容及标准:单项能力评价内容评价标准 熟悉掌握控制台的输入/输出操作 使用C#中的运算符,选择结构和循环结构 判断语句、循环语句的运用1. 熟悉掌握控制台的输入/输出操作2. 使用C#中的运算符,选择结构和循环结构3. 判断语句、循环语句的运用4、 掌握“冒泡排序”程序设计方法的应用4. 建立结构化程序设计思想。5. 熟悉C#程序结构6. 常量和变量、变量的赋值、常用的运算7. 熟练定义和使用数组,了解结构和枚举5. 灵活运用判断语句、循环语句。教学方法建议:讲述法 项目式教学法 任务教学法 实践操作法考核与评价:1.基本知识技能应用评价2.任务完成情况评价3.工作态度评价4.工作态度评价教学环境:微机、白板、投影仪、多媒体教学系统、多媒体课件、网络教学资源Win2000、IIS、Dreamweaver、Visual Studio 2008、SQL Server教师需要的能力与知识:1、C#程序设计相关的基础知识2、C#程序的基本结构、标识符的相关概念3、C#程序的编译和执行4、控制台的输入/输出操作5、C#的主要数据类型以及类型标识符6、数据类型的转换7、常量和变量、变量的赋值8、C#常用的运算符9、使用C#中的运算符,选择结构和循环结构10、定义和使用数组,了解结构和枚举11、熟悉C#中的预处理指令12、熟悉C#中的字符串处理 学生需要的能力与知识:1、C#程序设计相关的基础知识2、C#程序的基本结构、标识符的相关概念3、C#程序的编译和执行4、控制台的输入/输出操作5、C#的主要数据类型以及类型标识符6、数据类型的转换7、常量和变量、变量的赋值8、C#常用的运算符9、使用C#中的运算符,选择结构和循环结构10、定义和使用数组,了解结构和枚举11、熟悉C#中的预处理指令12、熟悉C#中的字符串处理 学习情境二 “C#基础:结构化程序设计实现学生成绩从小到大的排序即”冒泡排序”任务书1.设计通过学习C#程序设计相关的基础知识,理解常用的四个有关控制台输入、输出方法;熟悉C#的数据类型、运算符和表达式;熟悉三种控制结构:顺序结构、选择结构和循环结构 ;熟悉数组的定义和使用;熟悉结构和枚举。开发环境的配置:提供开发所需环境,包括Visual Studio 2008和.NET Framework2.任务分配分角色进行,按组完成该项目。要求在项目中分为不同角色完成下列任务:(1) 完成总体设计任务要求完成项目规划设计(2) 完成概要设计任务要求完成项目目标、开发及运行环境的配置(3) 完成详细设计任务要求完成集成环境的面板配置,新项目的创建,并测试功能。 “C#基础:结构化程序设计”学习指导在上一情境里读者接触到了第一个C#应用程序,虽只是简单地在控制台输出了一句问候语,但它却充分体现了Visual Studio 2008的易用性及C#语言的特点。理解了C#的用途之后,就可以学习如何使用它。本章将介绍C#的基本语法知识,通过本章学习,读者将了解以下内容:l 理解C#中的数据类型。l 理解常量和变量的含义及用法。l 理解数据类型转换的含义。l 会运用常用的运算符和表达式。1、C#中的数据类型 应用任何一种程序语言,需要充分了解它提供的数据类型,这样才能明白它的功能与限制,以便选择合适的数据类型来处理不同的数据。例如在平时生活中,我们会用整数来表达东西的数量,而在工程、金融领域我们要用到很高精度小数。但对计算机来说,数据的含义更要宽泛些,比如说一句话、一个字符等,对计算机来说都是数据。计算机会用不同的方式来处理它遇到的不同类型的数据。C#中数据类型主要分为两大类:值类型和引用类型。这里我们先讲解这两种类型,然后再讨论数据类型之间的转换。1.1 值类型什么是值类型呢?值类型的数据存储在内存的堆栈中,可以提供快速访问。如果变量是值类型,这个变量就包含实际数据,在一个独立的内存区域保存自己的值,如果在代码中修改其值后,在内存中会保存修改后的值。C#中大多数基本数据类型如:整型、字符型、浮点型、布尔型等都属于值类型,结构、枚举也属于值类型。1整数类型整数类型的数据值只能是整数,计算机语言所提供的数据类型有一定的范围。类型标识符描述可表示的数值范围sbyte8位有符号整数-128 +127byte8位无符号整数0 255short16位有符号整数-32768 +32767ushort16位无符号整数0 65535int32位有符号整数-2147483648 +2147483647uint32位无符号整数0 232-1long64位有符号整数-9223372036854775805 +9223372036854775807ulong64位无符号整数0 264-12. 浮点类型浮点类型的数据包含两种:单精度浮点型(float)和双精度浮点型(double),其区别在于取值范围和精度的不同。float类型是32位宽,double类型是64位宽。单精度:取值范围在+ 1.510-45 3.41038之间,精度为7位数。双精度:取值范围为+5.0-324 1.710308之间,精度为1516位数。3 小数类型小数类型(decimal)占用16个字节(128位),主要为了满足需要高精度的财务和金融计算机领域。小数类型数据的取值范围和精度如下:取值范围在+ 1.010-28 7.91028之间,精度为29位数。注意:小数类型数据的后面必须跟m或者M后缀来表示它是decimal类型的,如3.14m、0.28m等,否则就会被解释成标准的浮点类型数据,导致数据类型不匹配。例如:138f 代表float类型的数值138.0518u 代表uint类型的数值51836897123ul 代表ulong类型的数值3689712322.1m 代表decimal类型的数值22.112.68 代表double类型的数值12.6836 代表int类型的数值36刚开始学习,不可能一下子掌握这么多数值类型,先牢记以下几种:int型 : 凡是要表示带符号的整数时,先考虑使用int型;uint型 : 凡是需要不带符号的整数时,先考虑使用uint型;double型:凡是需要做科学计算,并且精度要求不是很高时,考虑使用double型。4. 字符类型 字符类型的类型标识符是char,采用Unicode字符集。 凡是在单引号中的一个字符,就是一个字符常数, 如: 你、 A、 ?、 6、2 注意: 在表示一个字符常数时,单引号内的有效字符数量必须且只能是一个,并且不能是单引号或者反斜杠()。为了表示单引号和反斜杠等特殊的字符常数,C#提供了转义符。C#常用的转义符转义符字符名称单引号双引号反斜杠0空字符(Null)a发出一个警告 b倒退一个字符f换页n新的一行r换行并移到同一行的最前面t水平方向的Tabv垂直方向的Tab如 Console.WriteLine(“Hello,”+”+”打印出单引号“+”“);例: using System; class StrDemo static void Main( ) Console.WriteLine(“FirstLinenSecondLine”); Console.WriteLine(“AtBtC”); Console.WriteLine(“DtEtF”); 5布尔类型布尔类型的类型标识符是bool。布尔类型常数只有两种值:true(代表“真”)和false(代表“假”)。布尔类型数据主要应用在流程控制中。 例:bool b=53; /b的值为true;b=false; 1.2 引用类型引用类型指向存储在内存堆中的数据的指针或引用。与纯粹的地址不同,引用总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了地址。字符串、数组、接口、类都属于引用类型。C#支持两个引用类型:object类和string类。1. object类object类是系统提供的基类型,是所有类型的基类,C#中所有的类型都直接或间接派生于对象类型。 对于任一个object变量,均可以赋以任何类型的值。 double d=3.14; object obj1; obj1=d; obj1=k; 对于object类型的变量,声明必须使用object关键字。2. string类一个字符串是被双引号包含的一系列字符。 string类是专门用于对字符串进行操作的。 如: string str1=中国,; string str2=你好!; string str3=str1+str2; /这相当于str3=中国,你好! char c=str30; /取出str3的第一个字符,即“中”字。C#支持两种形式的字符串常数。(1)常规字符串常数如: “this is a test” “C#程序设计教程”例:using System; class StrDemo static void Main( ) Console.WriteLine(First0linenSecond0line); Console.WriteLine(你好a); Console.WriteLine(“1t2t3); Console.WriteLine(“*t*t*”); 例如:using System;class StringDemo public static void Main( ) string str1=“A string”; string str2=Another string.; Console.WriteLine(“0n1”,str1,str2); 运行结果如下:(2)逐字字符串常数逐字字符串常数以开头,后跟一对双引号,在双引号中放入字符。如:“电子高专”“This is a book.”逐字字符串常数同常规字符串常数的区别:在逐字字符串常数的双引号中,每个字符都代表其最原始的意义,在逐字字符串常数中没有转义字符。注意:如果要包含双引号(),就必须在一行中使用两个双引号()。例:string str1; /定义字符串类型string str2=hello, world; /规则字符串常数:hello, worldstring str3=hello, world; /逐字字符串常数:hello, world string str4=hello t world; /hello worldstring str5= hello t world; /hello t worldstring str6=“He said Hello to you; /Tom said Hello to youstring str7=“He said Hello to you; /Tom said Hello to you例如: using System; class Test static void Main( ) Console.WriteLine(This is a verbatim string literal that spans several lines. ); Console.WriteLine(Here is some tabbed output: 1 2 3 4 5 6 7 8 ); Console.WriteLine(Programmers say, I like C#); 运行结果如下:1.3 数据类型转换数据类型在一定条件下是可以相互转换的。C#允许使用两种转换的方式:隐式转换和显式转换。1. 隐式转换隐式转换是系统默认的、不需要加以声明就可以进行的转换。 隐式数据转换的使用方法如下:int i=518; /a为整型数据long b=i; /b为长整型数据float f=i; /f为单精度浮点型数据2显式转换显式转换又叫强制类型转换,显式转换要明确指定转换类型。 显式转换格式: (类型标识符)表达式意义为:将表达式的值的类型转换为类型标识符的类型。 比如: (char)65 /把int类型的65转换成char类型注意:(1)显式转换可能会导致错误。(2)对于将float,double, decimal转换为整数,将通过舍入得到最接近的整型值,如果这个整型值超出目标域,则出现转换异常。 比如: (int)6.28m / 转换的结果为6 (int) 3e25f /将产生溢出错误3、字符串与数值之间的转换C#中不仅仅存在数值类型数据之间的互相转换,字符串和数值之间也是可以互相转换的,只是方法不同而已。(1)数值型转换为字符串数值型数据转换为字符串用ToString()方法即可实现。如:int num1 = 10;string mynum = num1.ToString();(2)字符串转化为数值型字符串数据转换为数值型使用Parse()方法。字符串转换为整型:int.Parse(string); 例如:string str = 13;int number = int.Parse(str);字符串转换为双精度浮点型:double.Parse(string); 例如:string str = 14;double number = double.Parse(str);字符串转换为单精度浮点型:float.Parse(string); 例如:string str = 15;float number = float.Parse(str);注意:Parse()括号中的参数只能是字符串,不能是其他数据类型。4、用Convert类实现数据类型转换通过前面的学习我们知道.Net Framework提供了很多类库,其中Convert类就是专门进行类型转换的类,它能够实现各种基本数据类型之间的相互转换。 一面代码演示了Convert类转换数据类型的方法。namespace Example_ConvertTest2 class ConvertEX static void Main(string args) float num1 = 82.26f; /原始数值 int integer,num2; /转换后的整型 string str, strdate; /转换后的字符串型 DateTime mydate=DateTime.Now; /把当前时间赋给日期型变量 /Convert类的方法进行转换 integer = Convert.ToInt32(num1); str = Convert.ToString(num1); strdate = Convert.ToString(mydate); /num2 = Convert.ToInt32(mydate); /输出结果 Console.WriteLine(转换为整型数据的值0,integer); Console.WriteLine(转换为字符串0,str); Console.WriteLine(日期型数据转换为字符串值为0,strdate); Console.ReadKey(); 1.4 装箱和拆箱 C#语言类型系统中有两个重要的概念,分别是装箱和拆箱。通过装箱和拆箱,任何值类型都可以被当作object引用类型来看待。本节将对装箱和拆箱进行详细讲解。1装箱装箱是指将值类型换成引用类型的过程。例如:下面的两条语句就执行了装箱转换: int i=518; object obj=i;例:在程序中执行装箱转换。using System;class BoxingDemo static void Main( ) Console.WriteLine(执行装箱转换:); int k=200; /声明一个int类型变量k,并初始化为200 object obj=k; /声明一个object 类型变量obj,其初始化值为i k=300; /重新将i赋值为300 Console.WriteLine(obj=0,obj); Console.WriteLine(k=0, k); 从程序运行结果可以看出,值类型变量的值复制到装箱得到的对象中,装箱后改变值类型变量的值,并不会影响装箱对象的值。2拆箱和装箱相反,拆箱是指将引用类型转化为值类型的过程。拆箱的执行过程大致可以分为一下两个阶段:l 检查对象的实例,看它是不是值类型的装箱值。l 把这个实例的值复制给值类型的变量。例如: object obj=228; int k=(int)obj;例如:在程序中使用拆箱转换。 using System class UnboxingDemo static void Main( ) int k=228; /声明int类型变量 object obj=k; /执行装箱操作 Console.WriteLine(装箱操作:值为0,装箱之后对象为1, k, obj); int j=(int ) obj; /拆箱转换 Console.WriteLine(拆箱操作:拆箱对象为0,值为1,obj, j); 该程序执行后,输出结果如下:从程序运行结果可以看出,拆箱后得到的值类型数据的值与装箱对象相等。注意:在执行拆箱操作时,要符合类型一致的原则,否则会出现异常。1.5 字符串应用String类字符串是我们在程序中用的非常多的数据类型,是最常用的一种引用类型。在前面的示例代码中几乎都用到了string这个数据类型。这节主要学习String类的用法。1常用的字符串处理方法.NET Framework提供了很多处理字符处的方法,下表列出了常用的一些方法,并对每个方法的作用加以说明。bool Equals(string str)与“=”作用相同,用于比较一个字符串和另一个字符串是否相等,相等返回true,不相等返回falseToLower()返回字符串的小写形式ToUper()返回字符串的大写形式Trim()去掉字符串两端的空格SubString(int startindex,int length)从字符串的指定位置startindex开始获取长度为length的子字符串Int IndexOf(string str)获取指定的字符串str在当前字符串中第一个匹配项的索引,有匹配项就返回索引,没有就返回-1Int LastIndexOf(string str)获取指定的字符串str在当前字符串中最后一个匹配项的索引,有匹配项就返回索引,没有就返回-1StringSplit(char separator)用指定分隔符分割字符串,返回分割后的字符串组成的数组String Join(string Separator,string str)字符串数据str中的每个字符用指定的分隔符Separator连接,返回连接后的字符串String Compare(string strA,string strB)比较两个字符串的大小,返回一个指数。如果strA小于strB,返回值小于0;如果两个字符串相等,返回值等于0;如果strA大于strB,返回值小于0Replace(string oldvalue,string newvalue)用newvalue值替换oldvalue实例:本程序实现下列功能:输入Email邮箱,获取邮箱的用户名。输入带空格的字符串,分割并连接。输入写大英文字符转化为小写static void Main(string args) string strname; /email的用户名 string inputStr; /输入的字符串 string splitString; /分割后的字符串数组 string joinString; /连接后的字符串 string strEnglish; /输入的大写英文字符 string email; /email Console.WriteLine(请输入您的邮箱); email = Console.ReadLine().Trim(); /接收输入 Console.WriteLine(您的邮箱是0,email); /抽取邮箱用户名 int intindex = email.IndexOf();/获取的索引 if (intindex 0) strname = email.Substring(0, intindex);/获取用户名 /输出邮箱用户名 Console.WriteLine(您的用户名是0, strname); else Console.WriteLine(您输入的格式错误); Console.WriteLine(请输入一个字符串,单词用空格分割); inputStr = Console.ReadLine(); Console.WriteLine(您输入的字符串是0,inputStr); /用空格分割字符串 splitString = inputStr.Split( ); /输出分割后的字符串 foreach (string s in splitString) Console.WriteLine(s); /将分割后的字符串用-连接 joinString = string.Join(-,splitString); /输出连接后的字符串 Console.WriteLine(连接后的字符串为0,joinString); Console.WriteLine(请输入大写英文字符串); strEnglish = Console.ReadLine(); Console.WriteLine(您输入的大写英文字符是0,strEnglish); /将输入的大写英文字符转换为小写并输出 Console.WriteLine(转换为小写英文字符0,strEnglish.ToLower(); Console.ReadLine(); 2、控制台的输入/输出操作-Console类控制台(console)输入/输出主要通过命名空间System中的类Console来实现,它提供了从控制台读写字符的基本功能。控制台输入主要通过Console类的Read方法ReadLine方法来实现的,控制台输出主要通过Console类的Write和WriteLine方法来实现的。2.1 Console.WriteLine( ) 方法WriteLine( )方法的作用是将信息输出到控制台,但是WriteLine方法在输出信息的后面添加一个回车换行符用来产生一个新行。在WriteLine( )方法中,可以采用“N,M:格式化字符串”的形式来格式化输出字符串,其中的参数含义如下:花括号(“”)用来在输出字符串中插入变量。N表示输出变量的序号,从0开始,如当N为0时,则对应输出第1个变量的值,当N为5时,则对应输出第6个变量的值,依次类推。,M:格式化字符串是可选项,其中M表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。 :格式化字符串也是可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。通过使用标准数字格式字符串,可以使用Xn的形式来指定结果字符串的格式,其中X指定数字的格式,n指定数字的精度,即有效数字的位数。这里提供8个常用的格式字符。 1货币格式货币格式C或者c的作用是将数据转换成货币格式,在格式字符C或者c后面的数字表示转换后的货币格式数据的小数位数。例如: double k=1234.789; Console.WriteLine(“0,8:c”, k); /结果是¥1,234.79 Console.WriteLine(“0,10:c4”, k); /结果是¥1,234.78902整数数据类型格式 格式字符D或者d的作用是将数据转换成整数类型格式。例如: int k=1234; Console.WriteLine(“0:D”, k); /结果是1234 Console.WriteLine(“0:d3”, k); /结果是1234 Console.WriteLine(“0:d5”, k); /结果是012343. 科学计数法格式格式字符E或者e的作用是将数据转换成科学计数法格式。例如:int k=123000;double f=1234.5578;Console.WriteLine(“0:E”, k); /结果是1.230000E+005Console.WriteLine(“0:e”, k); /结果是1.230000e+005Console.WriteLine(“0:E”, f); /结果是1.234558E+003Console.WriteLine(“0:e”, f); /结果是1.234558e+003Console.WriteLine(“0:e4”, k); /结果是1.2300e+005Console.WriteLine(“0:e4”, f); /结果是1.2346e+0034浮点数据类型格式 格式字符F或者f的作用是将数据转换成浮点数据类型格式。例如: int a=123000; double b=1234.5578; Console.WriteLine(“0,-8:f”,a);/结果是123000.00 Console.WriteLine(“0:f”,b);/结果是1234.56 Console.WriteLine(“0,-8:f4”,a);/结果是123000.0000 Console.WriteLine(“0:f3”,b);/结果是1234.558 Console.WriteLine(“0:f6”,b);/结果是1234.5578005通用格式 格式字符G或者g的作用是将数据转换成通用格式。例如: double k=1234.789; int j=123456; Console.WriteLine(“0:g”, j); /结果是123456 Console.WriteLine(“0:g”, k); /结果是1234.789 Console.WriteLine(“0:g4”, k); /结果是1235 Console.WriteLine(“0:g4”, j); /结果是1.235e+056自然数据格式 格式字符N或者n的作用是将数据转换成自然数据格式。例如: double k=211122.12345; int j=1234567; Console.WriteLine(“0:N”,k); /结果是211,122.12 Console.WriteLine(“0:n”, j); /结果是1,234,567.00 Console.WriteLine(“0:n4”, k); /结果是211,122.1235 Console.WriteLine(“0:n4”, j); /结果是1,234,567.00007. 十六进制数据格式 格式字符X或者x的作用是将数据转换成十六进制数据格式,在格式字符X或者x后面的数字表示转换后的十六进制数据的数据位数。例如:int j=123456;Console.WriteLine(0:x, j); /结果是1e240Console.WriteLine(0:x6, j); /结果是01e240还可以不使用参数调用WriteLine( )方法,这时将在控制台中产生一个新行。例: 利用Console.WriteLine( )方法输出变量值。程序代码如下:using System;class Test static void Main( ) int i=12345; double j=123.45678; Console.WriteLine(i=0,8:D j=1, 10: F3, i , j); Console.WriteLine( ); Console.WriteLine(i=0,-8:D j=1, -10: F3, i , j); 输出结果是:2.2 Console.Write( )方法 Write( )方法和WriteLine( )方法类似,都是将信息输出到控制台,但是输出到屏幕后并不会产生一个新行,即换行符不会连同输出信息一起输出到屏幕上,光标将停留在所输出信息的末尾。在Write( )方法中,也可以采用“N,M:格式化字符串”的形式来格式化输出字符串,其中的参数含义如同WriteLine( )方法。例: 利用Console.WriteLine( )方法输出变量值。程序代码如下:using System;class Test static void Main( ) int i=12345; double j=123.45678; Console.Write(i=0,8:D j=1, 10: F3 , i , j); Console.Write(i=0,-8:D j=1, -10: F3, i , j); 输出结果是:2.3 Console.ReadLine( )方法ReadLine( )方法用来从控制台读取一行数据,一次读取一行字符的输入,并且直到用户按下回车键它才会返回。但是,ReadLine( )方法并不接收回车键。如果ReadLine( )方法没有接收到任何输入,或者接收了无效的输入,那么ReadLine( )方法将返回null。例:用ReadLine( )方法接收用户输入,然后输出。 using System; class Test static void Main( ) string str; Console.WriteLine(“请输入你的姓名:”); str=Console.ReadLine( ); Console.WriteLine(“0,欢迎你!”,str); 输出结果是:2.4 Console.Read( )方法Read( )方法的作用是从输入流(控制台)读取下一个字符,Read( )方法一次只能从输入流读取一个字符,并且直到用户按回车键才会返回。当这个方法返回时,如果输入流中包含有效的输入,则它返回一个表示输入字符的整数;如果输入流中没有数据,则返回-1。 例:通过Console.Read( )方法从控制台接收用户的输入,然后显示接收的内容。程序代码如下:using System;class TestIo static void Main( ) Console.Write(请输入字符:); int a=Console.Read( ); Console.WriteLine(用户输入的内容为:0,a); 输出结果是:3 常量与变量3.1 常量在C#中,常量在程序的运行过程中其值是不能改变的,例如,数字100就是一个常量,这样的常量一般被称作常数。 声明常量的格式: const 类型标识符 常量名 = 表达式;例如:const double PI=3.14159265; double r=5.2; double s=PI*r*r; Console.Write(“面积=0”,s);常量特点:l 在程序中,常量只能被赋予初始值。l 定义常量时,表达式中的运算符对象只允许出现常量和常数,不能有变量存在。例如: int b=18; const int a=26; const int k=b+10; /错误,表达式中不允许出现变量 const int d=a+23; /正确,因为a是常量 a=56; /错误,不能修改常量的值3.2 变量变量是程序运行过程中用于存放数据的存储单元。 变量的值在程序的运行过程中可以改变。1变量的定义变量是用来存储数据的,不同的数据需要用不同的变量来存储,就像一个盒子有大有小,这个盒子中放置的东西就有多有少,变量也是如此,根据存储的数据类型不同,变量在内存中占用的空间也不相同,这就涉及到另一个概念数据类型。C#语言提供了很多数据类型,用于声明变量,并存储在相应的变量中。下表显示了C#常用的数据类型。在定义变量时,首先必须给每一个变量起名,称为变量名,变量名代表存储地址。变量的类型决定了存储在变量中的数值的类型。 变量定义格式: 数据类型 变量名称;例如:double fsum;string strName;private int number;/ private为访问修饰符,int为整形变量,number为变量名称。注意:C#规定,任何变量在使用前,必须先定义,后使用。2变量的变量的命名规范C#中声明变量也要遵循一些规则,使编码更规范,养成良好的编码习惯。简单规则如下:l 不能使用C#中的关键字,如class、int、bool等这些在C#中有特殊意义的字符。l 变量名通常不能有中文字符。l 以字母或下划线开头,如age、_name等。l 使用多个单词组成变量名时,使用骆驼命名法,即第一个单词的首字母小写,其他单词的首字母大写,如,myName、showAge等。3变量的赋值变量的赋值,就是将数据保存到变量所代表的存储单元中的过程。 格式: 变量名=表达式; 意义:计算表达式的值,然后将这个值赋予变量。例: double nAverage; int nAgeSum; nAgeSum=210; /给nAgeSum变量赋予数值210在程序中,可以给一个变量多次赋值。变量的当值等于最近一次给变量所赋的值。例如: nAgeSum=68; /这时nAgeSum等于68 nAgeSum=36+24; /这时nAgeSum等于60 nAgeSum= nAgeSum+40; /这这时nAgeSum等于100在对变量进行赋值时,表达式的值的类型必须同变量的类型相同。string sName;int nScore; sName=Jack; /正确 sName=Tom; /正确 nScore=98; sName=5; /错误, 不能将整数赋予字符串对象nScore=Hello; /错误, 不能字符串赋予整型变量4变量的初始化在定义变量的同时,可以对变量赋值,称为变量的初始化。 对变量进行初始化的格式如下: 类型标识符 变量名=表达式; 例: string str=“This is a book”;4 运算符和表达式在实际生活和工作中,相信每个人都有计算的概念,从加、减、乘、除简单的计算到平方、乘方等复杂的计算,计算的直接手段就是数学表达式,而运算符是表达式的组成部分。本节将介绍运算符的相关内容和表达式的使用。4.1 运算符运算符是表示各种不同运算的符号。C#中,运算符有多个级别,如下表所示:表:运算符类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)操作数1 + 操作数2-执行减法运算操作数1 操作数2*执行乘法运算操作数1 * 操作数2/执行除法运算操作数1 / 操作数2%获得进行除法运算后的余数操作数1 % 操作数2+将操作数加 1操作数+ 或+操作数-将操作数减 1操作数或操作数将一个数按位取反操作数比较运算符检查一个数是否大于另一个数 操作数1 操作数2检查一个数是否小于另一个数 操作数1 =检查一个数是否大于或等于另一个数 操作数1 = 操作数2=检查一个数是否小于或等于另一个数 操作数1 = 操作数2=
展开阅读全文