第2讲C程序设计基础(一)课件

上传人:94****0 文档编号:240969341 上传时间:2024-05-21 格式:PPT 页数:66 大小:361.09KB
返回 下载 相关 举报
第2讲C程序设计基础(一)课件_第1页
第1页 / 共66页
第2讲C程序设计基础(一)课件_第2页
第2页 / 共66页
第2讲C程序设计基础(一)课件_第3页
第3页 / 共66页
点击查看更多>>
资源描述
第二讲第二讲 C#C#程序设计基础(一)程序设计基础(一)n掌握掌握C#的数据类型及常用运算符和优先级。的数据类型及常用运算符和优先级。n了解控制流程的两种方法。了解控制流程的两种方法。n理解和掌握布尔逻辑的基本概念及布尔运算符的用理解和掌握布尔逻辑的基本概念及布尔运算符的用法。法。n掌握分支、循环流程控制语句的使用方法。掌握分支、循环流程控制语句的使用方法。n重点和难点:重点和难点:C#的数据类型及常用运算符、布尔的数据类型及常用运算符、布尔运算符的用法、分支结构及循环结构程序设计方法。运算符的用法、分支结构及循环结构程序设计方法。第二讲 C#程序设计基础(一)掌握C#的数据类型及常用运1第二讲第二讲 C#C#程序设计基础(一)程序设计基础(一)n2.1 C#数据类型数据类型n2.2 C#运算符与优先级运算符与优先级n2.3 C#流程控制语句流程控制语句第二讲 C#程序设计基础(一)2.1 C#数据类型22.1 C#2.1 C#数据类型数据类型n2.1.1值类型值类型 n2.1.2引用类型引用类型 n2.1.3值类型间的数据转换值类型间的数据转换 2.1 C#数据类型2.1.1值类型 3C#C#数据类型数据类型nC#数据类型分为两类:值类型和引用类型。数据类型分为两类:值类型和引用类型。nC#中把基本数据类型规定为值类型,而把一些较中把基本数据类型规定为值类型,而把一些较大的类型规定为引用类型,这种设计方式是为了大的类型规定为引用类型,这种设计方式是为了得到最佳的性能。得到最佳的性能。n值类型包括整型数类型、布尔类型、浮点类型和值类型包括整型数类型、布尔类型、浮点类型和小数型、结构类型和枚举类型。小数型、结构类型和枚举类型。n引用类型包括类类型、数组、接口类型和委托类引用类型包括类类型、数组、接口类型和委托类型、字符串类型型、字符串类型。C#数据类型C#数据类型分为两类:值类型和引用类型。4值类型变量和引用类型变量的主要区别值类型变量和引用类型变量的主要区别n存储位置存储位置值类型变量(定长)直接把变量的值保存在堆栈中。值类型变量(定长)直接把变量的值保存在堆栈中。引用类型的变量(变长)把实际数据的地址保存在堆引用类型的变量(变长)把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。栈中,而实际数据则保存在堆中。n赋值操作赋值操作值类型变量在赋值时使用了内存复制的方式,一个变值类型变量在赋值时使用了内存复制的方式,一个变量的操作不会影响到其他变量。量的操作不会影响到其他变量。引用类型变量在赋值时,直接传递的是地址,不存在引用类型变量在赋值时,直接传递的是地址,不存在内存数据的复制,没有性能损失,对一个变量的操作内存数据的复制,没有性能损失,对一个变量的操作会影响到引用同一个对象的另一个变量。会影响到引用同一个对象的另一个变量。值类型变量和引用类型变量的主要区别存储位置5.NET基本类型基本类型 在在.NET Framework中,被编译器直接支持的中,被编译器直接支持的数据类型称为基本类型,也被设计成类,每种数据数据类型称为基本类型,也被设计成类,每种数据类型都有属性和方法,在类型都有属性和方法,在.NET Framework类库中类库中都有对应的类名。都有对应的类名。.NET基本类型包括:基本类型包括:基本值类型:包括整型、浮点类型、小数型、布尔型、基本值类型:包括整型、浮点类型、小数型、布尔型、字符型。字符型。基本引用类型:包括基本引用类型:包括Object类型(对象类型)、类型(对象类型)、String类型。类型。.NET基本类型 在.NET Frame62.1.1 2.1.1 值类型值类型 u声明一个值类型的语法形式为:声明一个值类型的语法形式为:数据类型名数据类型名 变量名称变量名称 =n;例如:例如:int a=100;/声明一个整型变量声明一个整型变量a,并赋初值为,并赋初值为100;注意,注意,C#不允许使用未初始化的变量。不允许使用未初始化的变量。2.1.1 值类型 声明一个值类型的语法形式为:7名称名称.NET类名类名说明说明范围范围sbyteSystem.SByte8位有符号整数位有符号整数-2n-12n-1-1(n=8)byteSystem.Byte8位无符号整数位无符号整数02n-1(n=8)shortSystem.Int1616位有符号整数位有符号整数-2n-12n-1-1(n=16)ushortSystem.Uint1616位无符号整数位无符号整数02n-1(n=16)intSystem.Int3232位有符号整数位有符号整数-2n-12n-1-1(n=32)uintSystem.Uint6432位无符号整数位无符号整数02n-1(n=32)longSystem.Int6464位有符号整数位有符号整数-2n-12n-1-1(n=64)ulongSystem.Uint3264位无符号整数位无符号整数02n-1(n=64)floatSystem.Single32位单精度浮点数位单精度浮点数(7位有效数字位有效数字)1.510-45 3.41038doubleSystem.Double64位双精度浮点数位双精度浮点数(15到到16位有效数字位有效数字)5.010-324 1.710308decimalSystem.Decimal 128位高精度十进制数位高精度十进制数(28位到位到29位有效数字位有效数字)1.010-28 7.91028boolSystem.BooleanTrue或或 falsecharSystem.Char16位位Unicode字符字符C#基本值类型基本值类型注:有效数字指从第一个不是零的数字起到最后一个数为止的数位。注:有效数字指从第一个不是零的数字起到最后一个数为止的数位。整数型整数型浮点型浮点型小数型小数型布尔型布尔型字符型字符型名称.NET类名说明范围sbyteSystem.SByte88关于基本值类型的说明(关于基本值类型的说明(1):):n如果对一个整数的数值没有作出指示,编译器将其默认为如果对一个整数的数值没有作出指示,编译器将其默认为int类型,若不是类型,若不是int型,要加相应后缀,如:型,要加相应后缀,如:uint ui=9000u;long l=9000L;ulong ul=9000L;n如果对一个非整数的数值没有作出指示,编译器将其默认如果对一个非整数的数值没有作出指示,编译器将其默认为为double类型,如果想指定为类型,如果想指定为float型或小数型,数值要型或小数型,数值要分别加后缀分别加后缀f或或m,如:如:float f=345.12f;decimal d=10.0m;nbool类型的值和整数类型不能互相转换。类型的值和整数类型不能互相转换。关于基本值类型的说明(1):如果对一个整数的数值没有作出指示9关于基本值类型的说明(关于基本值类型的说明(2):):nchar类型的值是使用单引号括起来的,如类型的值是使用单引号括起来的,如A,汉汉。nC#定义了一种特殊形式的字符数据,即以定义了一种特殊形式的字符数据,即以“”开头的转义字符,开头的转义字符,转义字符用于在程序中取代特殊的控制字符,如下表所示。转义字符用于在程序中取代特殊的控制字符,如下表所示。转义序列转义序列字符字符转义序列转义序列字符字符单引号单引号f换页换页双引号双引号n换行换行反斜杠反斜杠r回车回车0空空t水平水平Taba警告警告v垂直垂直Tabb退格(退格()关于基本值类型的说明(2):char类型的值是使用单引号括起10结构类型结构类型n在实际生活中,经常把一组相关的信息放在一起。在实际生活中,经常把一组相关的信息放在一起。n如,记录一本书的相关信息如书名、作者和内容等。如果如,记录一本书的相关信息如书名、作者和内容等。如果按照简单的管理,每一条记录都要放到三个不同的变量中,按照简单的管理,每一条记录都要放到三个不同的变量中,这样的工作量很大,也不够直观。这样的工作量很大,也不够直观。nC#结构体可以解决这个问题。把一系列相关的变量组织成结构体可以解决这个问题。把一系列相关的变量组织成为一个单一实体的过程,称为生成结构的过程。这个单一为一个单一实体的过程,称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构的成员。实体的类型就叫做结构类型,每一个变量称为结构的成员。结构类型的变量采用结构类型的变量采用struct来进行声明。声明形式如下:来进行声明。声明形式如下:n 访问修饰符访问修饰符 struct 结构名称结构名称n n /主体主体n 结构类型在实际生活中,经常把一组相关的信息放在一起。11n下面根据记录书中的信息定义一个结构体,代码下面根据记录书中的信息定义一个结构体,代码如下:如下:npublic struct cententn public string title;n public string author;n public string content;nn 下面根据记录书中的信息定义一个结构体,代码如下:12结构类型举例:结构类型举例:nusing System;nnamespace StructExamplen public struct Pointn public int x;n public int y;n public string s;n n class Programn public static void Main()n Point p;n p.x=3;n p.y=4;n p.s=ok;n Console.WriteLine(The result is 0,1,2,p.x,p.y,p.s);n Console.ReadLine();n n nn运行结果:运行结果:The result is 3,4,ok结构类型举例:using System;13枚举类型枚举类型n枚举是值类型的一种特殊形式,为简单类型的常数值提供一种方枚举是值类型的一种特殊形式,为简单类型的常数值提供一种方便记忆的方法。枚举类型的定义形式一般为:便记忆的方法。枚举类型的定义形式一般为:n enum:枚举数据类型枚举数据类型 枚举名枚举名 枚举值表枚举值表;n每一种枚举类型都有一种基本类型,每一种枚举类型都有一种基本类型,long、int、short和和byte等等整数类型均可作为枚举类型的基本类型,如果不指明数据类型,整数类型均可作为枚举类型的基本类型,如果不指明数据类型,则默认为则默认为int型,且第一个元素的值为型,且第一个元素的值为0,其后每一个连续元素的,其后每一个连续元素的值加值加1递增,但是也可以给元素直接赋值定义。如:递增,但是也可以给元素直接赋值定义。如:nenum DaysMon,Tue,Wed,Fri,Sat,Sun;/Mon:0,Tue:1n该枚举名为该枚举名为Days,枚举值共有,枚举值共有7个,即一周中的个,即一周中的7天,所有被声明天,所有被声明为为Days类型的变量,其值只能是七天中的某一天。例如,当定义类型的变量,其值只能是七天中的某一天。例如,当定义Days类型变量类型变量aDays后,变量后,变量aDay的值为如下形式:的值为如下形式:nDays aDay;naDay=Days.Wed;n又如:又如:nenum Data:long Min=255l,Mid=1024l,Max=32768l;枚举类型枚举是值类型的一种特殊形式,为简单类型的常数值提供一14枚举类型举例枚举类型举例nusing System;nnamespace EnumExamplen class Programn /定义枚举型数据定义枚举型数据days,并赋值,并赋值,Sun到到Sat的值分别对应于的值分别对应于0到到6n enum days Sun,Mon,Tue,Wed,Thu,Fri,Sat;n static void Main()n Console.WriteLine(days.Wed);n Console.WriteLine(int)days.Wed);n /定义定义days型变量型变量myday,为其赋枚举中的值,为其赋枚举中的值Frin days myday=days.Fri;n Console.WriteLine(myday);n Console.ReadLine();n n nn运行结果:运行结果:nWedn3nFri枚举类型举例using System;152.1.2 2.1.2 引用类型引用类型 u在基本类型里的引用类型有两个数据类型,即在基本类型里的引用类型有两个数据类型,即Object类型和类型和String类型。类型。名称名称.NET 库别名库别名说明说明ObjectSystem.Object 根类型,根类型,.NET库中的其它任何类型库中的其它任何类型都是从它派生而来的(包括值类型)都是从它派生而来的(包括值类型)。StringSystem.String代表代表Unicode字符串字符串2.1.2 引用类型 在基本类型里的引用类型有两个数据类型16关于基本引用类型的说明关于基本引用类型的说明n(1)Object类型类型 在在C#中,中,Object类型是一切类型的最终父类型是一切类型的最终父类型,所有内在的和用户定义的类型归根结底都类型,所有内在的和用户定义的类型归根结底都是由它派生而来的。是由它派生而来的。n(2)String类型(字符串)类型(字符串)C#提供了一个封装良好的提供了一个封装良好的string类,可以方类,可以方便地执行字符串相关的操作,如下所示:便地执行字符串相关的操作,如下所示:string string1=“你好你好”;string string2=“C#”;string string3=string1+string2;关于基本引用类型的说明(1)Object类型17n(3)字符串在赋值方面像值类型,而不像引用类型。)字符串在赋值方面像值类型,而不像引用类型。nusing System;nclass stringexamplenstatic void Main()nstring s1=a string;nstring s2=s1;nConsole.WriteLine(s1 is +s1);nConsole.WriteLine(s2 is +s2);ns1=another string;nConsole.WriteLine(s1 is now +s1);nConsole.WriteLine(s2 is now +s2);nConsole.ReadLine();nnn运行结果如下:运行结果如下:ns1 is a stringns2 is a stringns1 is now another stringns2 is now a string(3)字符串在赋值方面像值类型,而不像引用类型。18n(4)String是是Uncode字符串,即每个英文字母与汉字一样,均字符串,即每个英文字母与汉字一样,均占两个字节,长度均为占两个字节,长度均为1。例如:。例如:nstring str=“ab张三张三cde”;nConsole.WriteLine(str.Length);/输出结果:输出结果:7。n(5)可以使用可以使用Format方法将字符串表示为规定格式。规定格式的方法将字符串表示为规定格式。规定格式的一般形式为:一般形式为:nN,M:格式码格式码n其中其中,:表示其中的内容为可选项。表示其中的内容为可选项。N:从零开始的整数,表示第几个参数。从零开始的整数,表示第几个参数。M:可选整数,表示最小长度。若该参数的长度小于可选整数,表示最小长度。若该参数的长度小于M的绝对值,就用空的绝对值,就用空格填充,如果格填充,如果M为负,则左对齐;如果为负,则左对齐;如果M为正,则右对齐。为正,则右对齐。M默认为默认为0。格式码格式码:可选的格式化代码字符串可选的格式化代码字符串(字母不区分大小写字母不区分大小写)。n如:如:nint i=123;double j=123.453;nString s=String.Format(“i=0,-7:d5,j=1,7:f2”,i,j);nConsole.WriteLine(s);n结果:结果:i=00123 ,j=123.45(4)String是Uncode字符串,即每个英文字母与汉字19部分格式码部分格式码格式符格式符含义含义示例示例:(int i=10;double x=10.5;)结果结果C将数字按将数字按照金额形照金额形式输出式输出Console.WriteLine(“0:C”,i);¥10.00Console.WriteLine(“0:C”,x);¥10.50 Dn输出整数输出整数(n为数字为数字个数,不个数,不足补足补0)Console.WriteLine(“0:D”,i);10Console.WriteLine(“0:D5”,i);00010Fn小数点后小数点后位数固定位数固定(n为小数为小数点位数,点位数,不足补不足补0)Console.WriteLine(“0:F”,i);10.00Console.WriteLine(“0:F4”,i);10.5000部分格式码格式符含义示例:(int i=10;double 202.1.3 2.1.3 值类型之间的数据转换值类型之间的数据转换 u同类整数值类型之间有两种转换方式:同类整数值类型之间有两种转换方式:隐式转换与显式转换;隐式转换与显式转换;u所有值类型之间的转换,都可以使用所有值类型之间的转换,都可以使用Convert类转换。类转换。2.1.3 值类型之间的数据转换 同类整数值类型之间有两种21(1)(1)同类整数值类型之间的数据转换同类整数值类型之间的数据转换-隐式转换隐式转换 从低精度、小范围的数据类型转换为高精从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以用隐式转换。度、大范围的数据类型,可以用隐式转换。例如:例如:int k=1;int k=1;long i=2;long i=2;i=k;/i=k;/隐式转换隐式转换(1)同类整数值类型之间的数据转换-隐式转换 从低22(2)(2)同类整数值类型之间的数据转换同类整数值类型之间的数据转换-显式转换显式转换 从大范围类型的数据转换为小范围类型的从大范围类型的数据转换为小范围类型的数据的时候,必须采用显式转换,而且特别谨数据的时候,必须采用显式转换,而且特别谨慎,因为此时有丢失数据的危险。如:慎,因为此时有丢失数据的危险。如:long k=5000;int i=(int)k 所有的隐式转换也都可以采用显式转换的形所有的隐式转换也都可以采用显式转换的形式来表示。如:式来表示。如:int i=10;long j=(long)i;(2)同类整数值类型之间的数据转换-显式转换 23(3)使用)使用Convert类进行所有值类型间的转换类进行所有值类型间的转换 命命 令令结结 果果Convert.ToBoolean(val)val转化为转化为boolConvert.ToByte(val)val转化为转化为byteConvert.ToChar(val)val转化为转化为charConvert.ToDecimal(val)val转化为转化为decimalConvert.ToDoube(val)val转化为转化为doubleConvert.ToInt16(val)val转化为转化为shortConvert.ToInt32(val)val转化为转化为intConvert.ToInt64(val)val转化为转化为longConvert.ToSByte(val)val转化为转化为sbyteConvert.ToSingle(val)val转化为转化为floatConvert.ToString(val)val转化为转化为stringConvert.ToUInt16(val)val转化为转化为ushortConvert.ToUInt32(val)val转化为转化为unitConvert.ToUInt64(val)val转化为转化为ulong(3)使用Convert类进行所有值类型间的转换 命 令结24Convert类示例类示例nstatic void Main()nndouble balance,interestRate;nConsole.WriteLine(请输入当前余额(元):请输入当前余额(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(请输入年利率:请输入年利率:);ninterestRate=1+Convert.ToDouble(Console.ReadLine()/100.0;nbalance*=interestRate;nConsole.WriteLine(1年后的余额将达年后的余额将达0:f2元。元。,balance);nConsole.ReadLine();nConvert类示例static void Main()252.2 2.2 运算符与优先级运算符与优先级nC#运算符分为以下两大类:运算符分为以下两大类:算术运算符算术运算符n数学运算符:数学运算符:+、-,*,/,%n递增递减运算符:递增递减运算符:+,-(用于前缀用于前缀);+,-(用于后缀用于后缀)n算术赋值运算符:算术赋值运算符:=,*=,/=,%=,+=,-=布尔运算符布尔运算符 下面只讲算术运算符,第二节再讲布尔运算符。下面只讲算术运算符,第二节再讲布尔运算符。2.2 运算符与优先级C#运算符分为以下两大类:26数学表达式示例数学表达式示例nint var1,var2=5,var3=6;nvar1=var2+var3;nvar1=var2-var3;nvar1=var2*var3;nvar1=var2/var3;nvar1=var2%var3;数学表达式示例int var1,var2=5,var3=6;27递增递减运算符示例递增递减运算符示例nint var1,var2=5;nvar1=+var2;/var1的值是的值是var2+1,var2递增递增1nvar1=-var2;/var1的值是的值是var2-1,var2递减递减1nvar1=var2+;/var1的值是的值是var2,var2递增递增1nvar1=var2-;/var1的值是的值是var2,var2递减递减1递增递减运算符示例int var1,var2=5;28算术赋值运算符示例算术赋值运算符示例nint var1,var2=5;nvar1=var2;nvar1+=var2;/var1=var1+var2nvar1-=var2;/var1=var1-var2nvar1*=var2;/var1=var1*var2nvar1/=var2;/var1=var1/var2nvar1%=var2;/var1=var1%var2算术赋值运算符示例int var1,var2=5;29算术运算符(优先级高算术运算符(优先级高低)低)组组运算符运算符一元运算符(一元运算符(1)+,-,+,-(用作前缀)(用作前缀)乘乘/除除/取余运算符取余运算符*,/,%加加/减运算符减运算符+,-赋值运算符赋值运算符=,*=,/=,%=,+=,-=一元运算符(一元运算符(2)+-(用作后缀)(用作后缀)算术运算符(优先级高低)组运算符一元运算符(1)+,-,+302.3 C#流程控制语句流程控制语句n2.3.1 布尔逻辑布尔逻辑n2.3.2 C#流程控制语句流程控制语句2.3 C#流程控制语句2.3.1 布尔逻辑31流程控制的两种方法流程控制的两种方法n分支分支 有条件地执行代码。条件取决于计算的结果。有条件地执行代码。条件取决于计算的结果。n循环循环 重复执行相同的语句(重复执行一定的次数,重复执行相同的语句(重复执行一定的次数,或者在满足测试条件后停止执行)。或者在满足测试条件后停止执行)。流程控制中要用布尔逻辑来控制流程的走向。流程控制中要用布尔逻辑来控制流程的走向。流程控制的两种方法分支322.3.1 布尔逻辑布尔逻辑n布尔逻辑的基本概念布尔逻辑的基本概念n布尔运算符布尔运算符n布尔表达式布尔表达式n常用运算符的优先级常用运算符的优先级2.3.1 布尔逻辑布尔逻辑的基本概念33布尔逻辑的基本概念布尔逻辑的基本概念n布尔布尔(bool)类型可以有两个值:类型可以有两个值:true或或false。n布尔布尔(bool)类型常常用于存储某些操作(如比较)类型常常用于存储某些操作(如比较)的结果,以便操作这些结果。的结果,以便操作这些结果。n如:要根据变量如:要根据变量myVal是否小于是否小于10,来确定是否,来确定是否执行代码,为此,需要确定执行代码,为此,需要确定“myVal小于小于10”的真的真假。假。若为真,若为真,“myVal小于小于10”的布尔结果为的布尔结果为true。若为假,若为假,“myVal小于小于10”的布尔结果为的布尔结果为false。布尔逻辑的基本概念布尔(bool)类型可以有两个值:true34布尔运算符布尔运算符n布尔比较运算符:根据比较关系的真假来确定布尔比较运算符:根据比较关系的真假来确定true还是还是false。包括:。包括:=,!,!=,=。n布尔条件运算符:用于判断一个或多个条件是否布尔条件运算符:用于判断一个或多个条件是否满足指定的规则,主要包括:满足指定的规则,主要包括:!,&,|。布尔运算符布尔比较运算符:根据比较关系的真假来确定true还35布尔比较运算符示例布尔比较运算符示例nbool var1nint var2=8,var3=5;nbool var1=(va2=var3);nvar1=(va2!=var3);nvar1=(va2var3);nvar1=(va2=var3);n/以上以上var1必须是布尔型,必须是布尔型,var2、var3可以是各种类型。可以是各种类型。布尔比较运算符示例bool var136布尔条件运算符示例布尔条件运算符示例nbool var1,var2=true,var3=false;nvar1=!var2;nvar1=var2&var3;/条件与条件与nvar1=var2|var3;/条件或条件或n/var1、var2、var3必须是布尔型。必须是布尔型。布尔条件运算符示例bool var1,var2=true,37布尔表达式布尔表达式 布尔表达式是指结果为布尔值的表达式。如:布尔表达式是指结果为布尔值的表达式。如:nbool var;nint ix=3,iy=5;nchar cx=g,cy=h;nstring sx=abc,sy=def;nvar=ixvar3)&(var4var3)|(var4var5)&(var4!=0);nConsole.WriteLine(“var1=0 var2=1”,var1,var2);n运行结果:运行结果:nvar1=True var2=True布尔运算及布尔表达式综合示例bool var1,var2;39常用运算符优先级(优先级高常用运算符优先级(优先级高低)低)组组运算符运算符初级运算符初级运算符()()一元运算符(一元运算符(1)+,-,!,!+,-(用作前缀)(用作前缀)乘乘/除运算符除运算符*,/,%加加/减运算符减运算符+,-布尔比较运算符(布尔比较运算符(1),=布尔比较运算符(布尔比较运算符(2)=,!=布尔条件与运算符布尔条件与运算符&布尔条件或运算符布尔条件或运算符|三元运算符三元运算符?:赋值运算符赋值运算符=,*=,/=,%=,+=,-=一元运算符(一元运算符(2)+-(用作后缀)(用作后缀)常用运算符优先级(优先级高低)组运算符初级运算符()一元运402.3.2 C#2.3.2 C#流程控制语句流程控制语句1.分支语句分支语句2.循环语句循环语句3.跳转语句跳转语句 2.3.2 C#流程控制语句分支语句411.1.分支语句分支语句 分支是控制下一步要执行哪些代码的过程,分支是控制下一步要执行哪些代码的过程,要跳转到的代码行由某个条件语句来控制。这个要跳转到的代码行由某个条件语句来控制。这个条件语句使用布尔逻辑,将测试值和可能值进行条件语句使用布尔逻辑,将测试值和可能值进行比较来决定程序走向。比较来决定程序走向。C#中的中的3种分支技术如下:种分支技术如下:n三元运算符三元运算符?:nif语句语句nswitch语句语句1.分支语句 分支是控制下一步要执行哪些42三元运算符三元运算符n使用三元运算符是进行比较的最简单的方式。其语使用三元运算符是进行比较的最简单的方式。其语法如下:法如下:n?:n 其中,其中,n 计算计算可得到一个布尔值,三元运算符的结可得到一个布尔值,三元运算符的结果根据这个值来确定是果根据这个值来确定是,还是还是。n 三元运算符的示例如下:三元运算符的示例如下:nstring resultStr=(myInteger10)?”小于小于10”:”大于等于大于等于10”;n 三元运算符比较适合于简单赋值语句,根据比三元运算符比较适合于简单赋值语句,根据比较结果执行大量代码的情形应使用较结果执行大量代码的情形应使用if语句。语句。三元运算符使用三元运算符是进行比较的最简单的方式。其语法如下43if语句语句 功功能能:根根据据测测试试条条件件布布尔尔表表达达式式的的值值(true或或false)选择要执行的语句序列。典型结构如下:)选择要执行的语句序列。典型结构如下:if(if(测试条件测试条件布尔表达式布尔表达式)测试条件测试条件布尔表达式为真时执行的语句序列布尔表达式为真时执行的语句序列 elseelse 测试条件测试条件布尔表达式为假时执行的语句序列布尔表达式为假时执行的语句序列 注注:以以后后,凡凡是是一一个个语语句句序序列列包包含含多多于于一一条条的的语语句句,就必须使用大括号就必须使用大括号 将语句序列括起来。将语句序列括起来。if语句 功能:根据测试条件布尔表达式44u常见形式有:常见形式有:1)单独使用单独使用if语句,不加语句,不加else语句语句if(if(布尔表达式布尔表达式)布尔表达式为真时执行的语句序列布尔表达式为真时执行的语句序列 2)if语句和语句和else语句配套使用的单条件测试语句配套使用的单条件测试if(if(布尔表达式布尔表达式)布尔表达式为真时执行的语句序列布尔表达式为真时执行的语句序列 elseelse 布尔表达式为假时执行的语句序列布尔表达式为假时执行的语句序列 常见形式有:45 3)else 3)else块中嵌套块中嵌套ifif语句的多条件测试语句的多条件测试if(if(布尔表达式布尔表达式1)1)布尔表达式布尔表达式1 1为真时执行的语句序列为真时执行的语句序列 else if(else if(布尔表达式布尔表达式2)2)/注意,注意,else和和if之间有一个空格。之间有一个空格。布尔表达式布尔表达式2 2为真时执行的语句序列为真时执行的语句序列 else if(else if(布尔表达式布尔表达式3)3)布尔表达式布尔表达式3 3为真时执行的语句序列为真时执行的语句序列 elseelse 所有条件均为假时执行的语句序列所有条件均为假时执行的语句序列 3)else块中嵌套if语句的多条件测试46n/if语句举例语句举例:任意输入一个整数任意输入一个整数i,,先判断合法性,先判断合法性,再判断再判断i是否为是否为”1”,为为“1”打印打印“i is one”,不为,不为”1”,打印,打印“i is not one”。nusing System;nnamespace ConsoleAppIfExamplenclass IfExamplenstatic void Main(string args)n int i;n Console.Write(i=);n i=Convert.ToInt32(Console.ReadLine();n if(i=1)n n Console.WriteLine(i is one);n n else n n Console.WriteLine(i is not one);n n Console.ReadLine();n nn/if语句举例:任意输入一个整数i,,先判断合法性,再47switch 语句语句uswitch 语语句句也也叫叫case语语句句,可可以以一一次次将将测测试试变变量量与与多多个个可可能能值进行比较,这种测试仅限于可能值是离散的值类型常量。值进行比较,这种测试仅限于可能值是离散的值类型常量。uswitch语句一般形式为:语句一般形式为:switch(条件表达式条件表达式)case 常量表达式常量表达式1:语句序列语句序列1 break;case 常量表达式常量表达式2:语句序列语句序列2 break;default:语句序列语句序列 break;每个每个case后的语句序列可不用后的语句序列可不用大括号大括号,但是每个但是每个case块的最后块的最后一句一定要是一句一定要是break语句。语句。switch 语句switch 语句也叫case语句,可以一48switchswitch语句注意事项:语句注意事项:a)a)如如果果某某个个casecase块块为为空空,则则会会从从这这个个casecase块块直直接接跳跳到到下一个下一个casecase块上。块上。b)b)在在一一个个switchswitch中中,不不能能有相同的两个有相同的两个casecase标记。标记。switch(条件表达式条件表达式)case 常量表达式常量表达式1:语句序列语句序列1 break;case 常量表达式常量表达式2:语句序列语句序列2 break;default:语句序列语句序列 break;switch语句注意事项:a)如果某个case块为49SwitchSwitch语句举例语句举例using System;namespace SwitchExample public class Program public static void Main()Console.WriteLine(一年中你最喜欢那个季节?一年中你最喜欢那个季节?);string Season=Console.ReadLine();/从键盘读取用户输入内容从键盘读取用户输入内容 Console.Write(你喜欢你喜欢0 ,Season);switch(Season)/switch分支分支 case 春天春天:Console.WriteLine(这样的天气最适合郊游了,相信你肯定喜欢!这样的天气最适合郊游了,相信你肯定喜欢!);break;case 夏天夏天:Console.WriteLine(火辣的天气,去游泳馆会是一个不错的选择!火辣的天气,去游泳馆会是一个不错的选择!);break;case 秋天秋天:Console.WriteLine(秋高气爽,带上你的家人去旅行吧!秋高气爽,带上你的家人去旅行吧!);break;case 冬天冬天:Console.WriteLine(白雪茫茫的,去滑雪吧,绝对刺激!白雪茫茫的,去滑雪吧,绝对刺激!);break;default:Console.WriteLine(请确认你输入的季节请确认你输入的季节);break;Console.Read();Switch语句举例using System;502.2.循环语句循环语句 循环就是重复执行一些语句。循环语句包括:循环就是重复执行一些语句。循环语句包括:udo-while语句语句uwhile语句语句uforeach语句语句ufor语句语句用于循环次数不定的情形。用于循环次数不定的情形。用于循环次数一定的情形。用于循环次数一定的情形。2.循环语句 循环就是重复执行一些语句。循环语句包括51do-while语句语句 do-while循环的结构如下:循环的结构如下:do 语句序列语句序列 while(条件条件);注:注:while语句后面的分号是必须的。语句后面的分号是必须的。do-while循环先执行循环体内的语句序列,然后进行一循环先执行循环体内的语句序列,然后进行一个布尔测试,如果测试的结果为个布尔测试,如果测试的结果为true,就继续循环。,就继续循环。如:如:nint i=1;ndonn Console.WriteLine(“0”,i+);n while(i=10);do-while语句 do-while循环的结构52例例2-3 do-while循环举例。给定当前余额、年利率及预期余额,计算几年循环举例。给定当前余额、年利率及预期余额,计算几年后存款余额达到预期余额。后存款余额达到预期余额。ndouble balance,interestRate,targetBalance;nConsole.WriteLine(请输入当前余额(元)请输入当前余额(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(请输入年利率:请输入年利率:);ninterestRate=1+Convert.ToDouble(Console.ReadLine()/100.0;nConsole.WriteLine(请输入预期余额(元):请输入预期余额(元):);ntargetBalance=Convert.ToDouble(Console.ReadLine();nint totalYears=0;ndo n balance*=interestRate;n +totalYears;nnwhile(balancetargetBalance);nConsole.WriteLine(在在0年内,余额将达年内,余额将达1元。元。,totalYears,balance);nConsole.ReadLine();例2-3 do-while循环举例。给定当前余额、年利率及预53while语句语句While循环的结构为:循环的结构为:while(条件条件)语句序列语句序列 while循循环环非非常常类类似似于于do-while循循环环,区区别别在在于于:while循循环环中中的的布布尔尔测测试试是是在在循循环环开开始始时时进进行行,循循环环体体可可能能一一次次都都不不执执行行,而而do-while循循环环是是在在最最后后进进行行布布尔尔测测试试,循循环环体体至至少执行一次。如:少执行一次。如:nint i=1;nwhile(i=10)nn Console.WriteLine(“0”,i+);nwhile语句While循环的结构为:54例例2-4 while循环举例。给定当前余额、年利率及预期余额,计算几年后存循环举例。给定当前余额、年利率及预期余额,计算几年后存款余额达到预期余额。款余额达到预期余额。ndouble balance,interestRate,targetBalance;nConsole.WriteLine(请输入当前余额(元):请输入当前余额(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(请输入年利率:请输入年利率:);ninterestRate=1+Convert.ToDouble(Console.ReadLine()/100.0;nConsole.WriteLine(请输入预期余额(元):请输入预期余额(元):);ntargetBalance=Convert.ToDouble(Console.ReadLine();nint totalYears=0;nwhile(balancetargetBalance)n balance*=interestRate;n +totalYears;nnConsole.WriteLine(在在0年内,余额将达年内,余额将达1元。元。,totalYears,balance);nConsole.ReadLine();例2-4 while循环举例。给定当前余额、年利率及预期余额55foreach循环循环nforeach循环可以依次读取集合中的每一项,但不能修改循环可以依次读取集合中的每一项,但不能修改集合中的任何一项。集合中的任何一项。nforeach的语法如下:的语法如下:nforeach(类型类型 变量名变量名 in 集合集合)nn 执行语句执行语句;nn类型为集合元素的类型,变量名表示集合中的每一个元素。类型为集合元素的类型,变量名表示集合中的每一个元素。每次执行一次循环语句,循环变量就读取集中的一个元素。每次执行一次循环语句,循环变量就读取集中的一个元素。foreach循环foreach循环可以依次读取集合中的每一56foreach举例举例n static void Main()n string colors=Red,Blue,Green,White,Yellow;n foreach(string c in colors)n n Console.WriteLine(0,c);n n Console.ReadLine();nforeach举例 static void Main()57for语句语句 do-while和和while语语句句适适于于循循环环次次数数不不定定的的情情形形。for语语句句用于循环次数一定的情形。用于循环次数一定的情形。要定义要定义for循环,需要下述信息:循环,需要下述信息:(1)初始化:给计数器变量(可以是多个)赋初值。)初始化:给计数器变量(可以是多个)赋初值。(2)循循环环条条件件:继继续续循循环环的的条条件件,当当计计数数器器变变量量不不满满足足测试条件时结束循环。测试条件时结束循环。(3)循循环环控控制制:在在每每次次循循环环的的最最后后,对对计计数数器器变变量量执执行行增减操作。增减操作。for循环一般形式为:循环一般形式为:for(初始化初始化;循环条件循环条件;循环控制循环控制)语句序列语句序列 for语句 do-while和whi58for语句简单举例语句简单举例n例:循环把例:循环把1至至10写到控制台上。写到控制台上。nint i;nfor(i=1;i=10;+i)nn console.writeline(“0”,i);nfor语句简单举例例:循环把1至10写到控制台上。593.3.循环的中断循环的中断-跳转语句跳转语句 有时需要在循环代码的处理上使用跳转语句有时需要在循环代码的处理上使用跳转语句实现更精细的控制。如下:实现更精细的控制。如下:nbreakbreak语句语句 立即终止循环。立即终止循环。ncontinuecontinue语句语句 立即终止当前的循环,继续执行下一次循环。立即终止当前的循环,继续执行下一次循环。3.循环的中断-跳转语句 有时需要在循环代码的处60break语句举例语句举例nint i;nfor(i=1;i=10;i+)nn if(i%2)=0)n break;/break命令终止了整个循环。命令终止了整个循环。n Console.WriteLine(i);nnConsole.ReadLine();n运行结果:运行结果:n1 break语句举例int i;61continue语句举例语句举例nint i;nfor(i=1;i 121)&(aFloat 125);n if(aBool)n int aInteger;n aInteger=(int)aFloat;n double aDouble;n aDouble=aFloat;n /float:7位有效数字;位有效数字;Double:15位有效数字位有效数字n Console.WriteLine(浮点数浮点数aFloat的值由的值由0分别变为分别变为1,2,n aFloat,aInteger,aDouble);n n long x=(long)Data.Min;n long y=(long)Data.Max;n Console.WriteLine(枚举类型的最小值和最大值分别为:枚举类型的最小值和最大值分别为:0,1,x,y);n MyPoint aPoint;n aPoint.x=10;n aPoint.y=100;n Console.WriteLine(结构类型的值:结构类型的值:0,1,aPoint.x,aPoint.y);n Console.ReadLine();n n 数据类型与控制流程综合示例class Program63作业作业:n1.编写并调试一个控制台应用程序,输出编写并调试一个控制台应用程序,输出1到到5的平的平方值,要求:方值,要求:1)用用for语句实现。语句实现。2)用用while语句实现。语句实现。3)用用do-while语句实现。语句实现。n2.设有如下数学表达式,从键盘上输入设有如下数学表达式,从键盘上输入x,用,用if语句语句编程输出编程输出y的值。的值。y=-1,x0作业:1.编写并调试一个控制台应用程序,输出1到5的平方值,64第2讲C程序设计基础(一)课件65第2讲C程序设计基础(一)课件66
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!