变量、数据类型和表达式.ppt

上传人:小飞机 文档编号:6250895 上传时间:2023-10-10 格式:PPT 页数:69 大小:963.01KB
返回 下载 相关 举报
变量、数据类型和表达式.ppt_第1页
第1页 / 共69页
变量、数据类型和表达式.ppt_第2页
第2页 / 共69页
变量、数据类型和表达式.ppt_第3页
第3页 / 共69页
变量、数据类型和表达式.ppt_第4页
第4页 / 共69页
变量、数据类型和表达式.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《变量、数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《变量、数据类型和表达式.ppt(69页珍藏版)》请在三一办公上搜索。

1、第3章 变量、数据类型和表达式,Week 2,主要内容,变量和常量数据类型类型转换运算符和表达式,1.变量与常量,变量常量,变量是在程序运行过程中,其值可以改变的数据在C#中,命名变量的过程叫声明,且规定,变量必须先声明后使用事实上,在C#中所有的名称都必须先声明后使用,包括常量名、方法名、类名、对象名等等这些名称统称为标识符,变量命名规则,1.变量名的第一个字符必须是字母或下划线,其余字符必须是字母、数字或下划线2.变量名不能是C#的关键字或库函数名例如:sum,_s,refType 都是合法的变量名int,Number Of Student,2A是非法变量名3.为变量命名最好有意义,可以提

2、高程序的可读性如:足球队的名字可以叫做footballTeam,而cT34C就不是一个好的变量名在包含多个单词的变量名中,从第二个单词开始,每个单词都采取首字母大写的形式.如上面的footballTeam,实例:以下变量名,哪些是非法的,哪些合法?,2xmy namex-yintaverageScorebtnSavemaxNumber,x,x,x,x,V,V,V,声明变量,声明变量就是把存放数据的类型告诉程序,以便为变量安排内存空间声明变量最简单的格式为:数据类型 变量名例如:int number;/声明一个整型变量float x;/声明一个单精度浮点型变量bool open;/声明一个布尔型

3、变量,变量赋值,C#规定,变量必须赋值后才能引用为变量赋值需使用赋值号“=”例如:int number;number=32;/为变量赋值32bool open;open=true;/为变量赋值true,可以使用变量为变量赋值,例如:bool close;close=open;/为变量赋值open(true)可以为几个变量一同赋值,例如:int a,b,c;a=b=c=32;可以在声明变量的同时为变量赋值,相当于将声明语句与赋值语句合二为一,例如:double area,radius=16;,常量,常量是在程序运行过程中,其值保持不变的量常量定义格式为:const 类型名称 常量名=常量表达式;

4、“常量表达式”不能包含变量及函数等值会发生变化的内容,但可以包含其他已定义常量例如:const int max=10;/合法const double P1=3.1415926;/合法const double maxArea=p1*max*max;/合法,表达式包含已定义常量int num=10;const double maxArea=P1*num*num;/不合法,表达式包含变量,如果在程序中非常频繁地使用某一常量,可以将其定义为常量定义常量的好处在于:提高代码输入效率减少输入错误常量名一旦输入错误,在程序运行前的编译阶段即可检查出来,2.数据类型,引用类型,值类型,引用类型,2.1 Ref

5、erence-引用类型,在内存中不存储 实际值,而是存储数据的引用。引用类型包括:类(class)接口(interface)数组(array)字符串(string)引用类型在以后的课程中再详细讲述,2.2 Value-值类型,主要组成:简单类型枚举类型结构类型,整数类型 浮点类型 十进制类型 布尔类型 字符类型,2.2.1简单类型,整数类型,整数类型在计算机中的取值范围,浮点类型,浮点类型在计算机中的取值范围,十进制类型,十进制类型在计算机中的取值范围,布尔类型,布尔类型表示现实中的“真”或“假”这两个概念,主要用来进行逻辑判断。在C#中,分别采用true和false这两个值来表示“真”和“假

6、”。,字符类型,字符类型采用国际上公认的Unicode标准字符集,enum枚举类型,Enumerate,为一组在逻辑上密不可分的整数提供便于记忆的符号。,例:声明一个代表季节的枚举类型:enum Season Spring,Summer,Autumn,Winter;Season currentSeason;,using System;namespace ConsoleApplication1 enum Season Spring,Summer,Autumn,Winter;class Program static void Main(string args)Season currentSeaso

7、n;currentSeason=0;Console.WriteLine(currentSeason);Console.ReadLine();,随堂练习(写作业本),定义一个枚举类型Sex,表示性别,性别有Male 和 Female两种。并使用枚举。,代码:using System;namespace ConsoleApplication1 enum Sex Male,Female;class Program static void Main(string args)Sex p;p=(Sex)1;Console.WriteLine(p);Console.ReadLine();,struct 结构

8、类型,把一系列相关 的变量组织成单一实体,这个单一实体的类型就叫做结构类型,每一个变量称为结构的成员。,例:定义通讯录的记录结构:struct PhoneBook public string name;public string phone;public string address;PhoneBook cityA;,struct表示学生例,struct Student/定义结构 public string name;public string id;public uint age;public string className;Student st1;/使用结构 st1.name=“王麻子”

9、;st1.id=“0737333331”;st1.age=20;st1.className=“07软件开发2班”;,随堂练习(写作业本),定义一个结构类型Point,用来表示平面上的一个点。用两个整数值x和y表示坐标位置。并使用结构类型,定义一个结构类型Point,用来表示平面上的一个点。用两个整数值x和y表示坐标位置。,例:定义通讯录的记录结构:struct PhoneBookpublic string name;public string phone;public string address;,定义一个结构类型Point,int x;,Point,int y;,2.2.2 泛型,泛型 一

10、种定义一个可以在使用时才确定类型的数据类型的机制,非范型声明方式:ArrayList gradeList=new ArrayList();范型声明方式:List gradeList=new List();,泛型(续),使用范例:List gradeList=new List();gradeList.Add(95);gradeList.Add(100);/显示所有成绩 foreach(int grade in gradeList)Console.WriteLine(grade);,2.2.3 隐式类型局部变量,注意:在声明var类型的同时,一定要初始化该变量,否则编译会报错,因为编译器无法推断出

11、该类型。初始化语句必须为表达式,不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。,C#3.0添加了var这个新关键字,在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。在声明局部变量时可把变量声明为var类型,那么这个声明就称为隐含类型局部变量。,class Program static void Main(string args)var i=1;var j=3.1415926;var k=Hello Word;System.Console.WriteLine(i=0,j=1,k=2,i,j,

12、k);,2.2.4 匿名类型,class Program static void Main(string args)var v=new ID=1,Name=Adam,Message=Hello Adam;,匿名类型是由一个或多个公共只读属性组成的类类型。不允许包含其他种类的类成员(如方法或事件)。匿名类型不能强制转换为除 object 以外的任何接口或类型。,3.类型转换,从一种类型转换为另一种类型:隐式转换显式转换使用方法进行数据类型的转换Convert.ToInt32()Int32.Parse(),隐式转换,不改变数据精确度的转换,即:从短数据到长数据。故无需特别声明。例如:int x=1

13、2346;/整型数隐式转换为长整型数long y=x;,隐式转换-例1,static void Main(string args)int k=432;Console.WriteLine(“k=0”,k);double Q=k;Console.WriteLine(Q=0:F1,Q);Console.ReadLine();,/此处为隐式转换,隐式转换-例2,using System;namespace ConsoleApplication2 class Program static void Main(string args)int a=10;Console.WriteLine(a=0,a);ch

14、ar c=a;/int 隐式转换 成char,运行结果会提示错误/char c=(char)a;/Convert.ToString(a);Console.WriteLine(c=0,a);,隐式数值转换,隐式数值转换包括以下几种:,隐式枚举转换,隐式枚举转换:允许把十进制整数0转换成任何枚举类型,而其他的整数则不存在这种隐式转换。,例:using System;namespace ConsoleApplication1 enum Season Spring,Summer,Autumn,Winter;class Program static void Main(string args)Seaso

15、n currentSeason;currentSeason=0;/隐式枚举转换 Console.WriteLine(currentSeason);Console.ReadLine();,显式数值转换 显式枚举转换,显式类型转换,显式转换,显式转换也叫强制转换,是在代码中明确指示将某一类型的数据转换为另一种类型显式转换的一般格式为:(数据类型名称)数据例如:int x=600;short z=(short)x;/将整型变量x的值显式转换为short类型,显式转换中可能导致数据的丢失例如:decimal d=234.55M/使用M或m类型符说明类型,否则编译出错int x=(int)d;/将十进制

16、型变量d的值显式转换为整型,小数部分截去,x=234,显式转换-例,static void Main(string args)double Q=432.0;Console.WriteLine(Q=0:F1,Q);int k=(int)Q;/此处为显式转换Console.WriteLine(k=0,k);Console.ReadLine();,显式数值转换,显式数值转换是指当不存在相应的隐式数值转换时,从一种数值类型到另一种数值类型的转换。,从sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double或decimal转换为任何枚举类

17、型从任何枚举类型转换为sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double或decimal 从任何枚举类型转换为任何其他枚举类型,显式枚举转换,显式枚举转换包括以下内容:,例:using System;namespace ConsoleApplication1 enum Season Spring,Summer,Autumn,Winter;class Program static void Main(string args)Season currentSeason;currentSeason=(Season)1;/显式枚举转

18、换 Console.WriteLine(currentSeason);Console.ReadLine();,其它类型转换至int整型数据,有三种操作方法:(int)Int32.Parse()Convert.toInt32(),1.类型转换:(int),表示使用显式强制类型转换。格式:(int)数据 例如:long t=10;int d=(int)t;强制转换需要考虑精度问题,2.方法转换,Int32.Parse()Convert.ToInt32()都表示将数字的字符串形式转换为32 位有符号整数,该转换属于方法转换,Convert.ToInt32()被使用得最多。Convvert.ToInt

19、32()实际上就是调用Int32.Parse()方法。,例:,编程做以下:输出:Enter your age please:读取用户输入的年龄输出:Youll be next year,结果如下:,using System;namespace ConsoleApplication1 class Program static void Main(string args)Console.WriteLine(Enter your age please:);/.从键盘读取用户输入并存入string变量 string age=Console.ReadLine();/把string转换为int类型 Con

20、sole.WriteLine(“Youll be 0 next year”,Convert.ToInt32(age)+1);Console.ReadLine();也可将以上的 Conver.ToInt32()改为直接调用 Int32.Parse()方法:int age=Int32.Parse(sAge);,代码:,4.运算符和表达式,运算符类型,运算符分为三类:,一元运算符:只使用一个操作数,二元运算符:使用两个操作数,三元运算符:使用三个操作数,运算符的优先级,运算符从高到低的优先级顺序:,简单的赋值运算符与赋值表达式,赋值就是给一个变量赋一个新值。“=”运算符用于将等号右边的操作数(第二个

21、操作数)的值赋给左边的操作数(第一个操作数)。表达式的结果是右边操作数的值,所以赋值操作可以串联在一起。,算术运算符与算术表达式,算术运算符用于创建执行数学操作的表达式。,关系运算符与关系表达式,关系运算符用于创建一个表达式,该表达式用来比较两个对象并返回布尔值。,逻辑运算符与逻辑表达式,逻辑运算符和布尔型操作数一起组成了逻辑表达式。,位操作符与位操作表达式,位操作符用位模式来操作整型数。,扩充后的赋值运算符与赋值表达式,扩充后的赋值运算符与赋值表达式。,条件运算符与条件表达式,条件运算符是唯一有3个操作数的运算符,所以有时又称为三元运算符。对条件表达式b?x:y,先计算b的值,若为true,运算的结果为表达式x的值,否则整个运算结果为表达式y的值举例:int score=80;string type=score60?不及格:及格;Console.WriteLine(type=0,type);,课后要求,自己阅读教材第3章并完成章节后的习题,准备小课上的课堂提问。,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号