资源描述
Visual C# 程序设计基础 XXXXXX大学计算机系基础教研室,第3章 简单C#程序设计,3.1 C#程序结构 3.2 变量和常量 3.3 常用数据类型 3.4 C#语言的运算符和表达式 小结和习题,3.1 面向对象的概念,3.1.1 组成要素 1.关键字 在C#代码中常常使用关键字,关键字也叫保留字,是有特定意义的字符串。关键字在Visual Studio .NET环境的代码视图中默认以蓝色显示,所以在编辑器中用户可以通过颜色识别该关键字是否是标识符。 例如,代码中的using、namespace、class、static、void等,均为C#的关键字。,3.1 面向对象的概念,3.1.1组成要素 2.命名空间 系统命名空间(System) 使用using关键字导入,是Visual Studio .NET中的最基本的命名空间. 命名空间System是.NET基础类库的根命名空间,根据功能分成若干个子命名空间,如System.Collections.Generic、System. ComponentModel、 System.Drawing、System.Windows.Forms等等 用户自定义命名空间,3.1 面向对象的概念,3.1.1组成要素 3.类和方法 C#中,必须用类来组织程序的变量与方法。 C#要求每个程序必须且只能有一个“Main”方法。 “Main”方法必须放在某一个类中。 “Main”方法是应用程序的入口。,3.1 面向对象的概念,3.1.1组成要素 4.语句 C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。 例如:Console.WriteLine(“Hello World!”);,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如: Console.WriteLine(“Hello World!”);,3.1 面向对象的概念,3.1.1组成要素 4.大括号 在C#中,括号“”和“”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。 大括号可以嵌套,以表示应用程序中的不同层次。 例如:Console.WriteLine(“Hello World!”);,语句就是C#应用程序中执行操作的指令,一条语句就是执行一个动作的命令。C#中的语句必须用分号“;”结尾。例如: Console.WriteLine(“Hello World!”);,3.1.2 C#程序的格式,1. 缩进与空格 缩进用于表示代码的结构层次,在程序设计中应该使用统一的缩进格式书写代码。 空格有两种作用: 语法要求 ,必须遵守; 避免语句拥挤。 例如:int ia = 3;,3.1.2 C#程序的格式,2. 字母大小写 C#中的字母可以大小写混合,但是必须注意的是,C#把同一字母的大小写当作两个不同的字符对待。 如:大写“A”与小写“a”对C#来说,是两个不同的字符。,3.1.2 C#程序的格式,3. 注释 C#中的注释基本有两种: 单行注释。单行注释以双斜线“/ ”开始,不能换行。 多行注释。多行注释以“/*”开始,以“*/”结束,可以换行。,3.1.3 标识符与用法约定,标识符 标识符是给变量、用户定义的类型(例如类和结构)和这些类型的成员指定的名称,以识别程序中的不同元素(如:变量名、类名等) 标识符的命名规则: 标识符只能使用数字、字母、下划线; 标识符开头第一个字符必须是字母或下划线; 不能把C#关键字用作标识符; C#标识符区分大小写。,3.1.3 标识符与用法约定,2. 关键字 C#中有76 个关键字,3.1.3 标识符与用法约定,3. 用法约定 命名变量时通常不使用前缀。 变量名应当体现变量的功能。 处理控件时,尽量使用能说明变量类型的名称。如:ConfirmationDialog、ChosseEmployeeListBox 第一个字母大写。 命名空间、类、以及基类中的成员等的名称都应遵循该规则。如:EmployeeSalary、ConfirmationDialog。 最好不要使用下划线。如:employee_salary。 常量也应遵循该规则。如:Const int MaximumLength;,3.1.3 标识符与用法约定,3. 用法约定 使用camel大小写形式。通常用于以下三种情况下: 类型中所有私有成员字段名称; 传递给方法的参数; 用于区分同名的两个对象,比较常见的是属性封装一个字段。 如:employeeSalary、confirmationDialog。 风格应保持一致。 如:若一个方法叫ShowConfirmationDialog,那么另一个就不要叫ShowDialogWarning,应叫ShowWarningDialog。,3.1 建立简单的应用程序,【例3-1】程序举例 using System; public sealed class P3_1 public static void Main() int result; result = 9 * 6; int thirteen; thirteen = 13; Console.WriteLine(result / thirteen); Console.WriteLine(result % thirteen); ,3.2 变量和常量,3.2.1 变量含义 变量是指在程序运行过程中其值可以不断变化的量。 变量通常用来保存程序运行过程中的输入数据并计算获得的中间结果和最终结果。 每个变量都具有一个类型,它确定哪些值可以存储在该变量中。 变量的命名规则必须符合标识符的命名规则,并且变量名要有意义,以便阅读,例如学生成绩的命名可以为studentGrade。,3.2 变量和常量,3.2.2 变量声明 变量必须先声明后使用 1变量声明 格式: 数据类型 变量名; 其中,是可选项,访问修饰符可以是public、private、protected、internal 或 protected internal等。 例如: int number; / 声明一个整型变量 bool open; / 声明一个布尔型变量 decimal bankBlance; / 声明一个十进制变量,3.2 变量和常量,3.2.2 变量声明 1变量声明 如果一次声明多个变量,变量名之间用逗号分隔,格式: 数据类型 变量名1,; 例如: sbyte a , b; / 声明两个有符号字节型变量 double x , y , z; / 声明三个双精度实型变量,3.2 变量和常量,3.2.2 变量声明 2变量赋值 变量必须赋值后才能引用 为变量赋值需使用赋值号“=” 例如: 定义变量,直接赋值:int number1=32; 先定义变量,后进行赋值: int number1; number1 = 32; 使用变量为变量赋值:int number2; number2=number1;,3.2 变量和常量,3.2.3 常量 常量是在编译时已知的值在程序的生存周期内始终不变的量。 1直接常量 常量必须在声明时初始化,格式: const 数据类型 常量名=常量值; 例如:public const int months = 12; 常量在使用的过程中,不可以对其进行赋值改变,否则系统会自动报错。,3.2 变量和常量,3.2.3 常量 2符号常量 符号常量使用const关键字声明,格式: const 数据类型 常量名=常量表达式; “常量表达式”的意义在于该表达式不能包含变量及函数等值会发生变化的内容,但可以包含其他已定义常量。 例如: const double PI = 3.1415926; 符号常量不能出现在赋值号的左边。,3.2 变量和常量,3.2.3 常量 2符号常量 说明: (1)可以同时声明多个相同类型的常量 例如:const int months = 12, weeks = 52, days = 365; (2)如果不会造成循环引用,用于初始化一个常量的表达式可以引用另一个常量。例如: const int months = 12,weeks = 52,days = 365; const double daysPerWeek = (double)days / (double)weeks; const double daysPerMonth = (double)days / (double)months;,3.2 变量和常量,3.2.3 常量 2符号常量 说明: (3)常量可标记为 public、private、protected、internal 或 protected internal。这些访问修饰符定义类的用户访问该常量的方式。 (4)未包含在定义常量的类中的表达式必须使用类名、一个句点和常量名来访问该常量。例如: int birthstones = Calendar.months; (5)如果在程序中强制修改常量的值,就会发生错误。 (6)常量通常用于:程序中一旦设定就不允许被修改的值(如圆周率);程序中被经常引用的值。,3.2 变量和常量,3.2.4 应用实例 【例3-2 】设计一个Windows窗体应用程序,输入速度和时间,计算行使路程,如图所示,3.3 常用数据类型,3.3 常用数据类型,3.3.1 数值类型 1. 整数类型 整型常量 整型常量即整数,整型常量有三种形式: 十进制形式,即通常意义上的整数,如12,123,48910等。 八进制形式,输入八进制整型常量,需要在数字前面加“0”,如,0123,038等。 十六进制形式,输入十六进制整型常量,需要在数字前面加“0 x”或“0X”,如,0 x123,0X48910等。 (2) 整型变量 整数类型的变量的值为整数,整型变量可分为以下几类: 有符号整数包括sbyte(符号字节型)、short(短整型)、int(整型)、long(长整型); 无符号整数包括byte(字节型)、ushort(无符号短整型)、uint(无符号整型)、ulong(无符号长整型)。,3.3 常用数据类型,3.3.1 数值类型 1. 整数类型,3.3 常用数据类型,3.3.1 数值类型 1. 整数类型 (3) 整型变量的声明 变量声明的形式为: 数据类型说明符 变量名标识符1,变量名标识符2,.; 而对整型变量而言,类型说明符可以是int、long、unsigned等等。例如: int a,b,c; / a,b,c为整型变量 long x,y; / x,y为长整型变量 unsigned p,q; / p,q为无符号整型变量 定义一个变量,意味着在内存中给这个变量分配相应大小的存储空间,同时确定这个变量值的存储方式和可以进行的操作。,3.3 常用数据类型,3.3.1 数值类型 2. 实数类型 实型常量 实型常量又称实数或浮点数,即带小数的数值,实型常量有两种表示形式: 小数形式,如0.123,12.3,.123等等。 指数形式,由底数加大写的E或小写的e加指数组成,如123e5或123E5都表示123105。 注意:小数形式表示的实型常量必须要有小数点。 (2) 实型变量 实数类型的变量的值为实数,实型变量可分为以下两类: 单精度(float) 双精度(double),3.3 常用数据类型,3.3.1 数值类型 2. 实数类型,3.3 常用数据类型,3.3.1 数值类型 1. 实数类型 (3) 实型变量的声明 实型变量声明的形式为: 数据类型说明符 变量名标识符1,变量名标识符2,.; 而对整型变量而言,类型说明符可以是float、double、long double。例如: float a,b,c; / a,b,c为实型变量 double x,y; / x,y为长实型变量 long double p,q; / p,q为无符号实型变量,3.3 常用数据类型,using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P3_3 class RealNumber public static void Main( ) float f = System.Single.PositiveInfinity; SpecialRealValue(f); f = System.Single.NegativeInfinity; SpecialRealValue(f); f =System.Single.NaN; SpecialRealValue(f); public static void SpecialRealValue( float f1) float f2=-1*f1; double d1=1/f1; double d2=-1/d1; Console.WriteLine(-1*0 = 1,f1,f2); Console.WriteLine(1/0 = 1,f1,d1); Console.WriteLine(-1/0 = 1, d1,d2); ,【例3-3 】特殊数值的计算,3.3 常用数据类型,3.3.2字符和字符串类型 字符类型 字符类型为由一个字符组成的字符常量或字符变量。 (1) 字符常量 字符常量声明的格式为: const 字符常量 = 字符; 字符常量用一对英文单引号界定,如,A,a,+,汉 等。 转义字符,有些字符不能直接放在单引号中作为字符常量,这时需要使用转义符来表示这些字符常量,转义符由反斜杠“”加字符组成,如 n 。,3.3 常用数据类型,3.3.2字符和字符串类型 字符类型 (2) 字符变量 字符变量声明格式: char 字符变量名 ; 字符变量初始化: char 字符变量名 = 字符常量 ; C#支持Unicode字符集。 char(字符型):数据范围是065535之间的Unicode字符集中的单个字符,占用2个字节。 char(字符型)表示无符号16位整数,它的可能值集与Unicode字符集相对应。,3.3 常用数据类型,3.3.2 字符和字符串类型 常用转义字符,3.3 常用数据类型,3.3.2字符和字符串类型 2. 字符串类型-string (1) 字符串常量 字符串常量是由一对双引号界定的字符序列 例如:teacher and student. (2) 字符串变量 字符串变量声明的格式: string 字符串变量; 例如:string str3; 变量声明的同时,还可以对变量初始化,例如: string str1=C#语言; string str2=程序设计;,3.3 常用数据类型,3.3.2字符和字符串类型 2. 字符串类型-string (2) 字符串变量 合并字符串只需在需要合并的子字符串间使用连接运算符“+”,例如: string myString=欢迎使用 + C#!; string greeting = Hello, World!; str3=str1+str2; /str3的值为:C#语言程序设计,3.3 常用数据类型,3.3.3 布尔类型和对象类型 布尔类型-bool 表示布尔逻辑量。数据范围是“true”(真)和“false ”,占用一个字节 (1) 布尔常量 布尔常量即布尔值本身,布尔值true(真)和false(假)是C#的两个关键字 (2) 布尔变量 bool 变量标识符 = 布尔值; 【例3-4】bool类型举例,3.3 常用数据类型,3.3.3 布尔类型和对象类型 2. 对象类型object 可以表示任何类型的值,占用字节视具体表示的数据类型而定。 C#中的每种类型都是直接或间接从object类型派生的。 例如: int x1=123; double x2=34.56; object y1,y2; /声明y1,y2是object类型的变量,3.3 常用数据类型,3.3.4 枚举类型 枚举(enum)是值类型的一种特殊形式,基本格式如下: 修饰符 enum 枚举类型名: 基类型 由逗号分隔的枚举数标识符 ; 例如: enum Days Sun,Mon,Tue,Wed,Thu,Fri,sat; enum Days Mon=1,Tue,Wed,Thu,Fri,Sat,Sun; enum MonthNames January=31,February=28,March=31,April=30; enum MonthNames : byte January=31, February=28, March=31, April=30 ;,3.3 常用数据类型,3.3.5 引用类型 类(class):一组具有相同数据结构和相同操作的对象集合。 接口(interface) 委托(delegate) 数组(array):包含若干相同类型元素的一组变量。,3.3 常用数据类型,3.3.6 类型转换 1. 隐式转换 遵守“由低级(字节数和精度)类型向高级类型转换,结果为高级类型”的原则。 例如: string a,b; a=10+”12”; double x=3.1415; int y=21; double z=x+y;,3.4 运算符和表达式,运算符大致分为3类: 一元运算符,包括前缀运算符和后缀运算符,用于处理一个操作数 二元运算符,使用时在操作数中间插入运算符,用于处理两个操作数 三元运算符,使用时在操作数中间插入运算符,用于处理三个操作数,3.4 运算符和表达式,C#语言运算符,3.4.1运算符与表达式类型,1. 算术运算符与算术表达式 一元运算符:-(取负)、+(取正)、+(增量)、-(减量)。 二元运算符:+(加)、-(减)、*(乘)、/(除)、%(求余)。 自增+和自减- - ( 例3-5 ) +(或- -)在前,如y=+(或- -)x,表示先将x值做+(或- -)运算,然后再赋值给y; +(或- -)在后,如y=x+(或- -),表示先将x值赋值给y,然后再将x值做+(或- -)运算; 乘法运算时的溢出现象,3.4.1运算符与表达式类型,2.字符串运算符与字符串表达式 字符串运算符只有一个,即“+”运算符,表示将两个字符串连接起来。 例如: string connec=abcd+ef; / connec的值为“abcdef” “+”运算符还可以将字符型数据与字符串型数据或多个字符型数据连接在一起,例如: string connec=abcd+e+f; / connec的值为“abcdef”,3.4.1运算符与表达式类型,3. 关系运算符与关系表达式 关系运算符的作用是比较两操作数的大小,如表所示。 关系运算符都是二元运算符,左右操作数都是表达式,返 回 布 尔 类 型 的值true或 false。,3.4.1运算符与表达式类型,4. 逻辑运算符与逻辑表达式 逻辑运算符是!(非)、 / b3的值为true,3.4.1运算符与表达式类型,5. 条件运算符与条件表达式 条件运算符是C#中唯一的三元运算符,条件运算符由符号“?”与“:”组成,通过操作三个操作数完成运算,一般格式为: 布尔类型表达式?表达式1:表达式2 条件运算符的功能为:如果关系表达式的值是true,则条件运算表达式得到的值为表达式1的值,否则为表达式2的值。 例如: x0?x:-x /判断表达式x0的值,如果是true结果为x,如果是false结果为-x,3.4.1运算符与表达式类型,6. 赋值运算符与赋值表达式 赋值就是给一个变量赋一个新值。在赋值表达式中,赋值运算符左边的操作数必须是一个变量。 (1)简单赋值运算符 “=”运算符被称为简单赋值运算符。赋值表达式的格式: 变量=表达式 在一个简单赋值中,如果赋值运算符两边的操作数类型不一致,那就先要进行类型转换。若使其自动发生类型转换需符合下面条件: 两个类型是兼容的。 目的类型比源类型的取值范围大。 C#中可以对变量进行连续赋值,这时赋值运算符是右关联的,意味着从右向左运算符被分组。 例如,a=b=c的表达式等价于a=(b=c)。,3.4.2 运算符的优先级与结合性,1. 运算符的优先级 一元运算符的优先级高于二元和三元运算符。 不同种类运算符的优先级有高低之分,算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑运算符,逻辑运算符的优先级高于条件运算符,条件运算符的优先级高于赋值运算符。 有些同类运算符优先级也有高低之分,在算术运算符中,乘、除、求余的优先级高于加、减;在关系运算符中,小于、大于、小于等于、大于等于的优先级高于相等与不等;逻辑运算符的优先级按从高到低排列为非、与、或。 可以使用圆括号明确运算顺序。,本章小结,关键字 运算符和表达式 语句 常量、变量 常用的数据类型,习 题,1. 选择题(P. ) (1) (12) 2. 填充题 (1) (2) 3. 问答题 (1) (3) 3. 编程题 (1) (3),
展开阅读全文