《第3部分变量数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《第3部分变量数据类型和表达式.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3部分变量数据类型和表达式 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望Visual C#2005程序设计语言程序设计语言第第1章章:概述概述第第 2 章:章:C#与与Visual Studio 2005第第 3 章:章:变量、数据类变量、数据类型和表达式型和表达式第第 4 章:分支和循环章:分支和循环第第 5 章:面向对象章:面向对象第第 6 章:面向对象的高章:面向对象的高级应用级应用第第 7 章:程序的生成、章:程序的生成、调试和异常处理调试和异常处理第
2、第 8 章:数组与字符串章:数组与字符串 第第 9 章:章:基于基于 Windows 的应用程序的应用程序第第 10 章:章:创建创建 Web 应应用程序用程序第第 11 章:章:.NET Framework 2.0 简介简介本章学习目标:本章学习目标:声明并使用变量声明并使用变量 了解了解C#C#的主要数据类型的主要数据类型理解值类型理解值类型 使用表达式进行数学运算使用表达式进行数学运算 掌握不同数据类型的转换方法掌握不同数据类型的转换方法目标目标变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据
3、类型和表达式和表达式变量变量命名变量命名变量声明变量声明变量3.13.1变量变量变量变量 随堂练习随堂练习为变量命名时要遵循为变量命名时要遵循C#语言的命名规范语言的命名规范:变量名只能由字母、数字和下划线组成,变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其而不能包含空格、标点符号、运算符等其他符号他符号变量名不能与变量名不能与C#C#中的关键字名称相同中的关键字名称相同命名变量命名变量 3.1.1 命名变量命名变量 命名变量(续)命名变量(续)3.1.1 命名变量命名变量关于变量命名的一般建议关于变量命名的一般建议 :变量名应具有描述性质变量名应具有描述性质在包含多
4、个单词的变量名中,从第二个单词在包含多个单词的变量名中,从第二个单词开始,每个单词都采取首字母大写的形式开始,每个单词都采取首字母大写的形式 变量名最好以小写字母开头变量名最好以小写字母开头 随堂练习随堂练习3.1.2 随堂练习随堂练习以下以下4个变量名中,合法的变量名个变量名中,合法的变量名是是_。(1)&adw(2)Good bye(3)_list(4)声明变量声明变量 3.1.3 声明变量声明变量 变量使用原则:先声明,后使用变量使用原则:先声明,后使用变量声明方法:变量声明方法:数据类型数据类型 变量名;变量名;变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和
5、表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式常量常量 3.2 常量常量 定义:常量就是其值固定不变的量定义:常量就是其值固定不变的量声明方法:声明方法:const 数据类型数据类型 常量表达式常量表达式;变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式C#数据类型数据类型 3.3 C#数据类型数据类型C#数据类型数据类型引用类型引用类型 类(类(class)接口(接口(interface)3.3.1引用类型引用类型在内存中不直接存储引
6、用类型的数据,而是在内存中不直接存储引用类型的数据,而是存储该数据的地址存储该数据的地址。引用类型。引用类型包括包括:数组(数组(array)字符串(字符串(string)值类型值类型 3.3.2值类型值类型值类型主要由简单类型、枚举类型和结构类型这值类型主要由简单类型、枚举类型和结构类型这三类组成:三类组成:种类描述值类型简单类型(Simpletypes)有符号整数:sbyte,short,int,long无符号整数:byte,ushort,uint,ulongUnicode字符:charIEEE浮点数:float,double十进制数:decimal布尔值:bool枚举类型(Enumtyp
7、e)enumE.结构类型(Structtype)structS.整数类型整数类型浮点类型浮点类型十进制类型十进制类型布尔类型布尔类型 字符类型字符类型简单类型简单类型 整数类型整数类型 整数类型在计算机中的取值范围整数类型在计算机中的取值范围 描述位数数据类型取值范围有符号整数8sbyte12812716short327683276732int2147483648214748364764long92233720368547758089223372036854775807无符号整数8byte025516ushort06553532uint0429496729564ulong01844674407
8、3709551615浮点类型浮点类型 浮点类型在计算机中的取值范围浮点类型在计算机中的取值范围 描述位数数据类型取值范围单精度浮点型32float1.51045到3.41038,7位精度双精度浮点型64double5.0103241.710308,15位精度十进制类型十进制类型 十进制类型在计算机中的取值范围十进制类型在计算机中的取值范围 描述位数数据类型取值范围十进制类型128decimal1.010287.91028,29位精度布尔类型布尔类型 布尔类型表示现实中的布尔类型表示现实中的“真真”或或“假假”这两个概这两个概念,主要用来进行逻辑判断。在念,主要用来进行逻辑判断。在C#中,分别采
9、用中,分别采用true和和false这两个值来表示这两个值来表示“真真”和和“假假”。描述位数数据类型取值范围布尔类型8booltrue或false字符类型字符类型字符类型采用国际上公认的字符类型采用国际上公认的Unicode标准字符集标准字符集描述位数数据类型取值范围字符类型16char在065535范围内以双字节编码的任意符号枚举类型枚举类型 比如,声明一个代表季节的枚举类型的变量:比如,声明一个代表季节的枚举类型的变量:enum Season Spring,Summer,Autumn,Winter;Season currentSeason;枚举类型为一组在逻辑上密不可分的整数提供便于枚举
10、类型为一组在逻辑上密不可分的整数提供便于记忆的符号记忆的符号结构类型结构类型 把一系列相关的变量组织成单一实体的过程,在把一系列相关的变量组织成单一实体的过程,在C#中称为生成结构的过程。这个单一实体的类型中称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构的成员。就叫做结构类型,每一个变量称为结构的成员。结构类型的变量采用结构类型的变量采用struct来声明,比如可以如下定来声明,比如可以如下定义通讯录的记录结构:义通讯录的记录结构:struct PhoneBookpublic string name;public string phone;public string
11、address;PhoneBook p1;泛型泛型 关于泛型,会在后续课程中详细讲解关于泛型,会在后续课程中详细讲解泛型泛型 一种定义一个可以在使用时才确定类型的数据一种定义一个可以在使用时才确定类型的数据类型的机制类型的机制变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式隐式类型转换隐式类型转换显式类型转换显式类型转换随堂练习随堂练习类型转换类型转换 3.4 类型转换类型转换示例代码示例代码隐式数值转换隐式数值转换隐式枚举转换隐式枚举转换隐式类型转换隐式类型转换 3.4.1隐式
12、类型转换隐式类型转换隐式数值转换隐式数值转换 隐式数值转换包括以下几种:隐式数值转换包括以下几种:从到sbyteshort、int、long、float、double或decimalbyteshort、ushort、int、uint、long、ulong、float、double或decimalshortint、long、float、double或decimalushortint、uint、long、ulong、float、double或decimalintlong、float、double或decimaluintlong、ulong、float、double或decimallongfloat
13、、double或decimalulongfloat、double或decimalcharushort、int、uint、long、ulong、float、double或decimalfloatdouble多媒体演示:隐式数值转换多媒体演示:隐式数值转换多媒体演示多媒体演示示例代码示例代码隐式枚举转换隐式枚举转换 隐式枚举转换隐式枚举转换:允许把十进制整数允许把十进制整数0 0转换成任何枚举类型,而其他转换成任何枚举类型,而其他的整数则不存在这种隐式转换。的整数则不存在这种隐式转换。多媒体演示:隐式枚举转换多媒体演示:隐式枚举转换多媒体演示多媒体演示示例代码示例代码显式数值转换显式数值转换显式枚
14、举转换显式枚举转换显式类型转换显式类型转换 3.4.2显式类型转换显式类型转换显式数值转换显式数值转换 显式数值转换是指当不存在相应的隐式数值转换时,显式数值转换是指当不存在相应的隐式数值转换时,从一种数值类型到另一种数值类型的转换。从一种数值类型到另一种数值类型的转换。从到sbytebyte、ushort、uint、ulong或charbytesbyte或charshortsbyte、byte、ushort、uint、ulong或charushortsbyte、byte、short或charintsbyte、byte、short、ushort、uint、ulong或charuintsbyte
15、、byte、short、ushort、int或charlongsbyte、byte、short、ushort、int、uint、ulong或charulongsbyte、byte、short、ushort、int、uint、long或charcharsbyte、byte或shortfloatsbyte、byte、short、ushort、int、uint、long、ulong、char或decimaldoublesbyte、byte、short、ushort、int、uint、long、ulong、char、float或decimaldecimalsbyte、byte、short、ushort
16、、int、uint、long、ulong、char、float或double示例代码示例代码从从sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double或或decimal转换为任何转换为任何枚举类型枚举类型从任何枚举类型转换为从任何枚举类型转换为sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double或或decimal 从任何枚举类型转换为任何其他枚举类型从任何枚举类型转换为任何其他枚举类型 显式枚举转换显式枚举转换 显式枚举转换包括以下内容:显式枚举转换包括以下
17、内容:多媒体演示:显式枚举转换多媒体演示:显式枚举转换多媒体演示多媒体演示示例代码示例代码随堂练习随堂练习 3.4.3随堂练习随堂练习1.下面声明了一些数值类型的变下面声明了一些数值类型的变量量short s=10;int i=5;uint ui=50;long l=1000;double d=45.3;decimal m=154;2.试着分析下列哪些类型转换是试着分析下列哪些类型转换是正确的:正确的:s=ui;i=ui;s=l;l=s;m=d;d=m;l=d;m=i;随堂练习随堂练习(续)(续)3.4.3 随堂随堂练习练习 3.试着写出以下这段程序的运行结果:试着写出以下这段程序的运行结果:
18、using System;using System.Collections.Generic;using System.Text;namespace convert enum Color Red,Yellow,Blue,Green,Purple,Black,White ;class Program static void Main(string args)Color color_arr=new Color 3;int int_arr=new int1,2,3;color_arr0=(Color)int_arr0;color_arr1=(Color)int_arr1;color_arr2=(Col
19、or)int_arr2;Console.WriteLine(The value of color_arr0 is:0,color_arr0);Console.WriteLine(The value of color_arr1 is:0,color_arr1);Console.WriteLine(The value of color_arr2 is:0,color_arr2);变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式运算符类型运算符类型运算符的优先级运算符的优先级简单的赋值
20、运算符与赋值表达式简单的赋值运算符与赋值表达式算术运算符与算术表达式算术运算符与算术表达式关系运算符与关系表达式关系运算符与关系表达式逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式位操作符与位操作表达式位操作符与位操作表达式扩充后的赋值运算符与赋值表达式扩充后的赋值运算符与赋值表达式条件运算符与条件表达式条件运算符与条件表达式运算符和表达式运算符和表达式 3.5 运算符和表达式运算符和表达式运算符类型运算符类型 运算符分为三类运算符分为三类:一元运算符:一元运算符:只使用一个操作数只使用一个操作数二元运算符:二元运算符:使用两个操作数使用两个操作数三元运算符:三元运算符:使用三个操作数使用三个操
21、作数3.5.1 运算符类型运算符类型运算符的优先级运算符的优先级 3.5.2 运算符的优先级运算符的优先级运算符从高到低的优先级顺序:运算符从高到低的优先级顺序:运算符类型运 算 符初级运算符x.y,f(x),ax,x+,x-,new,typeof,checked,unchecked一元运算符!,+,-,(T)x乘法、除法、取模运算符*,/,%增量运算符+,-移位运算符关系运算符,=,is,as等式运算符=,!=逻辑“与”运算符&逻辑“异或”运算符逻辑“或”运算符|条件“与”运算符&条件“或”运算符|条件运算符?:赋值运算符=,*=,/=,%=,+=,-=,=,&=,=,|=简单的赋值运算符与
22、赋值表达式简单的赋值运算符与赋值表达式3.5.3 简单的赋值运算符简单的赋值运算符与赋值表达式与赋值表达式赋值就是给一个变量赋一个新值。赋值就是给一个变量赋一个新值。“=”运运算符用于将等号右边的操作数(第二个操作算符用于将等号右边的操作数(第二个操作数)的值赋给左边的操作数(第一个操作数)数)的值赋给左边的操作数(第一个操作数)。表达式的结果是右边操作数的值,所以赋。表达式的结果是右边操作数的值,所以赋值操作可以串联在一起。值操作可以串联在一起。算术运算符与算术表达式算术运算符与算术表达式 3.5.4 算术运算符与算术运算符与算术表达式算术表达式算术运算符用于创建执行数学操作的表达式算术运算
23、符用于创建执行数学操作的表达式。运算符描述运算符描述+加/除-减+自增1*乘-自减1%取模关系运算符与关系表达式关系运算符与关系表达式 3.5.5 关系运算符与关系运算符与关系表达式关系表达式关系运算符用于创建一个表达式,该表达式关系运算符用于创建一个表达式,该表达式用来比较两个对象并返回布尔值。用来比较两个对象并返回布尔值。运算符描述运算符描述=等于大于!=等于=小于或等于=大于或等于逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 3.5.6 逻辑运算符与逻辑运算符与逻辑表达式逻辑表达式逻辑运算符和布尔型操作数一起组成了逻辑逻辑运算符和布尔型操作数一起组成了逻辑表达式。表达式。运算符描述!NO
24、T(非)&AND(短路)&AND(非短路)|OR(短路)|OR(非短路)XOR(异或)true测试true值(重载时使用)false测试false值(重载时使用)位操作符与位操作表达式位操作符与位操作表达式 3.5.7 位操作符与位操作符与位操作表达式位操作表达式位操作符用位模式来操作整型数位操作符用位模式来操作整型数。运算符描述运算符描述右移位|OR左移位XOR(异或)&AND取反扩充后的赋值扩充后的赋值运算符与赋值表达式运算符与赋值表达式3.5.8扩充后的赋值扩充后的赋值运算符与赋值表达式运算符与赋值表达式扩充后的赋值运算符与赋值表达式。扩充后的赋值运算符与赋值表达式。运算符描述运算符描述
25、=赋值=右移赋值-=减法赋值&=AND位操作赋值*=乘法赋值|=OR位操作赋值/=除法赋值=XOR位操作赋值%=取模赋值条件运算符与条件表达式条件运算符与条件表达式 3.5.9 条件运算符与条件运算符与条件表达式条件表达式条件运算符是唯一有条件运算符是唯一有3个操作数的运算符,所以个操作数的运算符,所以有时又称为三元运算符。有时又称为三元运算符。对条件表达式对条件表达式b?x:y,先计算条件,先计算条件b,然后进行判,然后进行判断。如果断。如果b的值为的值为true,计算,计算x的值,运算结果为的值,运算结果为x的值;否则,计算的值;否则,计算y的值,运算结果为的值,运算结果为y的值。的值。变
26、量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式3.6 小结小结本章我们学习了程序设计的基础元素:变量和数本章我们学习了程序设计的基础元素:变量和数据类型,介绍了运算符和表达式以及数据类型转据类型,介绍了运算符和表达式以及数据类型转换,还介绍运算符的使用方法和基本的数据类型换,还介绍运算符的使用方法和基本的数据类型转换概念,这些都是重要的基本知识需要熟练掌转换概念,这些都是重要的基本知识需要熟练掌握。握。小结小结 变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运
27、算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式实验实验3.7 实验实验参照实验手册,并在教师指导参照实验手册,并在教师指导下完成实验报告。下完成实验报告。变量变量常量常量C#数据类型数据类型类型转换类型转换运算符和表达式运算符和表达式小结小结 实验实验习题习题 第第3章章 变量、数据类型变量、数据类型和表达式和表达式习题习题 3.8 习题习题1.判断正误,如果错误,请说明原因判断正误,如果错误,请说明原因(1)在使用变量之前必须先声明其数)在使用变量之前必须先声明其数据类型。据类型。(2)C#认为认为number和和NuMbEr 是同一个是同一
28、个变量。变量。(3)算术运算符)算术运算符*、/、%、+和和-处于同处于同一优先级一优先级习题(续)习题(续)3.8 习题习题2.填空题填空题(1)如果)如果int X的初始值为的初始值为5,则执行表达式,则执行表达式X-=3之后,之后,X的值为的值为_。(2)_运算符将左右操作数相加的结运算符将左右操作数相加的结果赋值给左操作数。果赋值给左操作数。(3)存储整型数的变量应当用关键字)存储整型数的变量应当用关键字_来声明。来声明。(4)常量通过关键字)常量通过关键字_进行声明。进行声明。(5)布尔型变量可以赋值为关键字)布尔型变量可以赋值为关键字_或或_。习题(续)习题(续)3.8 习题习题3
29、.选择题选择题(1)算术表达式)算术表达式_进行计算。进行计算。A.自右至左自右至左 B.自左至右自左至右C.按照运算符优先级规则按照运算符优先级规则D.按照优先级从低往高的顺序按照优先级从低往高的顺序(2)当)当_时,条件时,条件“expression1 XOR expression2”的值为真的值为真A.expression1为真而为真而expression2为假为假B.expression1为假而为假而expression2为真为真C.expression1和和expression2均为真均为真D.a和和b都对都对习题(续)习题(续)3.8 习题习题(3)在)在C#中无需编写任何代码就能
30、将中无需编写任何代码就能将int型型数值转换为数值转换为double,称为,称为 _。A.显式转换显式转换 B.隐式转换隐式转换 C.数据类型变换数据类型变换 D.变换变换(4)“&”运算符运算符_。A.执行短路计算执行短路计算 B.不是关键字不是关键字C.是一个比较运算符是一个比较运算符 D.的值为真,如果两个操作数都为真的值为真,如果两个操作数都为真(5)在)在C#中,中,_表示为表示为。A.空字符空字符 B.空串空串 C.空值空值 D.以上都不是以上都不是习题(续)习题(续)3.8 习题习题(6)“*=”运算符运算符_。A.计算右操作数的平方值,然后将结果存计算右操作数的平方值,然后将结
31、果存储在左操作数中储在左操作数中B.把左操作数的值与右操作数的值相加,把左操作数的值与右操作数的值相加,然后将结果存储在左操作数中然后将结果存储在左操作数中C.创建一个新的变量,然后将右运算数的创建一个新的变量,然后将右运算数的值赋值给该变量值赋值给该变量D.把左操作数的值与右操作数的值相乘,把左操作数的值与右操作数的值相乘,然后将结果存储在左操作数中然后将结果存储在左操作数中(7)如果左操作数大于右操作数,)如果左操作数大于右操作数,_运算符返回运算符返回false.A.=B.C.=D.以上都是以上都是习题(续)习题(续)3.8 习题习题4.简答题简答题(1)计算下列表达式的值(不要用计算)
32、计算下列表达式的值(不要用计算器),并在器),并在Visual Studio 2005中进行验中进行验证证A.3+4*5B.(3+4)*5 C.7%3习题(续)习题(续)3.8 习题习题4.简答题简答题(2)写一个表达式,使变量)写一个表达式,使变量var的值增加的值增加5%(尽可能多写几种)。(尽可能多写几种)。习题(续)习题(续)3.8 习题习题4.简答题简答题(3)假定一个小球在)假定一个小球在2 m高的地方以高的地方以15 m/s的初速度垂直上抛,问:的初速度垂直上抛,问:3s后小球后小球的高度?(提示:的高度?(提示:t秒后小球高度近似秒后小球高度近似值计算公式:值计算公式:V0*t+h0-5t 其中其中V0指初速指初速度,度,h0是球的初始高度)是球的初始高度)习题(续)习题(续)3.8 习题习题4.简答题简答题(4)下面代码运行后)下面代码运行后,myInteger的值是多的值是多少?少?int myInteger;double myDouble=5555.55;myInteger=(int)myDouble;