第2章C#编程基础(上)ppt课件.ppt
第二章 C#编程基础,C#的基本语法格式C#语言中的常量与变量,C#语言运算符的使用C#程序的流程控制,2.1 C#的基本语法,2.1.1 C#代码的基本格式C#中的程序代码都必须放在一个类中。类需要使用class关键字定义,在class前面可以有一些修饰符,格式如下:,修饰符 class 类名程序代码,在编写C#代码时,需要特别注意以下几点,具体如下:C#中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能执行语句的最后都必须用分号(;)结束。Console.WriteLine(这是第一个C#程序!);C#语言是严格区分大小写的。,2.1 C#的基本语法,2.1 C#的基本语法,虽然C#没有严格要求用什么样的格式来编排程序代码,但是,出于可读性的考虑,应该让自己编写的程序代码整齐美观、层次清晰。以下两种方式都可以,但是建议使用后一种。,public class HelloWorld public static void Main(string args)Console.WriteLine(这是第一个C#程序!);,public class HelloWorld public static void Main(string args)Console.WriteLine(这是第一个C#程序!);,2.1 C#的基本语法,2.1.2 C#中的注释在编写程序时,为了使代码易于阅读,通常会在实现功能的同时为代码加一些注释。注释是对程序中某个功能或者某行代码的解释说明,在编译程序时编译器不会编译这些注释信息。C#中的注释有三种类型,具体如下:1、单行注释单行注释通常用于对程序中的某一行代码进行解释,用符号“/”表示,“/”后面为被注释的内容,具体示例如下:,int c=10;/定义一个整型变量,2.1 C#的基本语法,2、多行注释多行注释顾名思义就是在注释中的内容可以为多行,它以符号“/*”开头,以符号“*/”结尾,多行注释具体示例如下:3、文档注释文档注释用于对类或方法进行说明和描述。在类或方法前面连续输入3个“/”,就会自动生成相应的文档注释,用户需要手动填写类或方法的描述信息,来完成文档注释的内容。,/*int c=10;int x=5;*/,脚下留心,在C#中,有的注释可以嵌套使用,有的则不可以,下面列出两种具体的情况。多行注释“/*/”中可以嵌套单行注释“/”,例如:多行注释“/*/”中不能嵌套多行注释“/*/”,例如:上面的代码无法通过编译,原因在于第一个“/*”会和第一个“*/”进行配对,而第二个“*/”则找不到匹配。,/*/*int c=10;*/int x=5;*/,/*int c=10;/定义一个整型的c int x=5;*/,2.1 C#的基本语法,2.1.3 C#中的标识符在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如类名、方法名、参数名、变量名等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是C#中的关键字。,2.1 C#的基本语法,下面的这些标识符都是合法的:注意,下面的这些标识符都是不合法的:,usernameusername123user_name_userName,123usernameclass98.3Hello World,注意C#区分大小写,所以student与Student是不同的标识符,2.1 C#的基本语法,建议初学者在定义标识符时还应该遵循以下规则:类名、方法名和属性名中的每个单词的首字母要大写。例如:ArrayList、LineNumber、Age。这种命名方式被称为大驼峰命名法或帕斯卡(Pascal)命名法。字段名、变量名的首字母要小写,之后的每个单词的首字母均为大写。例如:age、userName。这种命名方式被称为小驼峰命名法。常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。,2.1 C#的基本语法,2.1.4 C#中的关键字关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其他语言一样,C#中保留了许多关键字,例如class、public等,下面列举的是C#中所有的关键字。,2.1 C#的基本语法,使用C#关键字时,有几个值得注意的地方,如下所示:所有的关键字都是小写的。程序中的标识符不能以关键字命名。,C#中的数据类型,数据类型C#是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。,2.1 C#的基本语法,2.1.5 C#中的常量常量就是在程序中固定不变的值,是不能改变的数据。在C#中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。,2.1 C#的基本语法,1、整型常量整型常量是整数类型的数据,有八进制、十进制和十六进制4种表示形式,具体如下:八进制:以0开头并且其后由0 7之间(包括0和7)的整数组成的数字序列,如:0342。十进制:由数字09之间(包括0和9)的整数组成的数字序列。如:198。十六进制:以0 x或者0X开头并且其后由09、AF(包括0和9、A和F)组成的数字序列,如0 x25AF。,2.1 C#的基本语法,2、浮点常量浮点数常量就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型。其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。当然,在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。具体示例如下:,2e3f 3.6d 0f 3.84d 5.022e+23f,2.1 C#的基本语法,3、字符常量字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号()引起来,它可以是英文字母、数字、标点符号、以及由转义序列来表示的特殊字符。具体示例如下:上面的示例中,u0000表示一个空白字符,即在单引号之间没有任何字符。之所以能这样表示是因为,C#采用的是Unicode字符集,Unicode字符以u开头,空白字符在Unicode码表中对应的值为u0000。,a 1&r u0000,2.1 C#的基本语法,4、字符串常量字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号()引起来,具体示例如下:一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,即长度为零。,HelloWorld 123 Welcome n XXX,2.1 C#的基本语法,5、布尔常量布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。6、null常量null常量只有一个值null,表示对象的引用为空。关于null常量将会在第四章中详细介绍。,多学一招,特殊字符反斜杠()反斜杠()是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。下面列出一些常见的转义字符:r 表示回车,将光标定位到当前行的开头,不会跳到下一行。n 表示换行,换到下一行的开头。t 表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。b 表示退格符号,就像键盘上的Backspace。,多学一招,刚才介绍的字符都有特殊意义,无法直接表示,所以用斜杠加上另外一个字符来表示。表示单引号字符,C#代码中单引号表示字符的开始和结束,如果直接写单引号字符(),程序会认为前两个是一对,会报错,因此需要使用转义()。“表示双引号字符,C#代码中双引号表示字符串的开始和结束,包含在字符串中的双引号需要转义,比如”he says,“thank you”.“。表示反斜杠字符,由于在C#代码中的斜杠是转义字符,因此需要表示字面意义上的,就需要使用双斜杠。,C#中的变量,变量的概念在程序运行过程中,其值可以被改变的量称之为变量。变量名每个变量都必须有一个名字,即变量名。变量命名应遵循标识符的命名规则,如必须以字母、下划线(_)打头,可包含字母、数字、下划线和汉字,不能包含空格,不能使用C#保留字等。变量值程序运行时,系统自动为变量分配内存单元,用来存储变量的值。在程序中,通过变量名来引用变量的值。,2.2 C#中的变量,2.2.1 变量的定义变量是内存中的一个位置,它具有名称并且包含值。变量与数据类型相关联,数据类型定义了数据的类型,同时定义了变量所占用的存储空间大小。注意C#区分大小写,所以student与Student是不同的变量名,2.2 C#中的变量,2.2.1 变量的定义变量在使用前必须先声明(也就是 定义变量名)指定变量名、变量值的数据类型(确定变量占用的内存空间),该操作称为变量的定义。其一般形式为:类型标识符 变量名1,变量名2,;,请考虑以下声明和初始化变量的示例Int class_rank=2;,C#中的数据类型代表要在变量中存储的数据的种类。C#提供各种内置的数据类型,如:char 2个byteint 4个bytefloat 4个bytedouble 8个bytebool 1个byte stringclass,提问int Num;Num=5;运行时 Num 变量值是多少string Str=“Hello”;运行时 str变量 的值 是多少?,值类型的内存分配,int Num;Num=5;,5,C#中的变量的内存分配情况,值类型中的内存分配,num,C#中的变量的内存分配情况,引用类型,字符串类型变量的内存分配,示例,1、整数类型变量用来存储整数数值,即没有小数部分的值。整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。占用空间指的是不同类型的变量分别占用的内存大小。取值范围是变量存储的值不能超出的范围。,2.2 C#中的变量,2、浮点数类型变量浮点数类型变量用来存储小数数值。浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精确。在取值范围中,E表示以10为底的指数,E后面的“+”号和“-”号代表正指数和负指数,例如1.4E-45表示1.4*10-45。,2.2 C#中的变量,在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母“F”(或“f”),而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或“d”),也可不加。在程序中也可以为一个浮点数类型变量赋予一个整数数值。,float f=123.4f;/为一个float类型的变量赋值,后面必须加上字母fdouble d1=100.1;/为一个double类型的变量赋值,后面可以省略字母ddouble d2=199.3d;/为一个double类型的变量赋值,后面可以加上字母d,2.2 C#中的变量,3、字符类型变量用于存储一个单一字符,在C#中用char表示。每个char类型的字符变量都会占用2个字节。赋值时,要用英文半角格式的单引号()把字符括起来,如a,也可以赋值为065535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为a。,char c=a;/为一个char类型的变量赋值字符a,2.2 C#中的变量,4、布尔类型变量布尔类型变量用来存储布尔值,在C#中用bool表示,该类型的变量只有两个值,即true和false。具体示例如下:,bool flag=false;/声明一个bool类型的变量,初始值为falseflag=true;/改变flag变量的值为true,2.2 C#中的变量,变量的类型转换,举例,2.2 C#中的变量,2.2.3 变量的类型转换当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。,2.2 C#中的变量,1、自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。要实现自动类型转换,必须同时满足两个条件:第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。(低字节向高字节转换),byte b=3;int x=b;/程序把byte类型的变量b转换成了int类型,无需特殊声明,2.2 C#中的变量,对于数值型数据,字节少的数据类型可自动转换为 字节多的数据类型很多类型之间可以进行自动类型转换,接下来就列出三种可以进行自动类型转换的情况,具体如下:(1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,int类型的数据可以赋值给long类型的变量。(2)整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。(3)其它类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。,2.2 C#中的变量,2、强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。,2.2 C#中的变量,出现这样错误的原因是将一个int型的值赋给byte类型的变量b时,int类型的取值范围大于byte类型的取值范围,这样的赋值会导致数值溢出,也就是说一个字节的变量无法存储四个字节的整数值。在这种情况下,就需要进行强制类型转换,具体格式如下:将例2-1中第6行代码修改为下面的代码,运行结果:,目标类型 变量=(目标类型)值,short b=(short)num;,2.2 C#中的变量,在对变量进行强制类型转换时,会发生取值范围较大的数据类型向取值范围较小的数据类型的转换,如将一个int类型的数转为byte类型,这样做极容易造成数据精度的丢失。,多学一招,表达式类型自动提升所谓表达式是指由变量和运算符组成的一个算式。变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式数据类型的自动提升,如一个byte型的变量在运算期间类型会自动提升为int型。,多学一招,上图中出现了错误,是因为在表达式b1+b2运算期间,变量b1和b2被自动提升为int型,表达式的运算结果也就成了int型,这时如果将该结果赋给byte型的变量就会报错,此时需要进行强制类型转换。,2.2 C#中的变量,2.2.4 变量的作用域变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。,2.2 C#中的变量,2.2 C#中的变量,例程2-4出错的原因在于在给变量y赋值时超出了它的作用域。将第11行代码去掉,再次编译程序不再报错。例程2-4修改后的代码中,变量x、y都在各自的作用域中,因此都可以被访问到。,字符串 数据 到 数值型数据的转换从键盘输入 一个 整数 和小数,并把它们加起来 输出它们的和,要了解如何在变量中存储值,请注意以下代码段:int Number;Number=Convert.ToInt32(Console.ReadLine();,在成员变量中接受和存储值,Console.ReadLine()方法返回的是字符串类型,Number是整数类型,所以需要转换int.Parse(Console.ReadLine();,要了解如何在变量中接受值,请注意以下代码段:int Number;Number=Convert.ToInt32(Console.ReadLine();,在成员变量中接受和存储值(续),Convert.ToInt32()将用户输入的数据转换成 int 数据类型,课堂练习,从键盘 输入一个 浮点数据,然后输出它的整数部分 和小数部分,字符串格式,零占位符和数字占位符代码如下:string.Format(0:0000.00,12394.039)/结果为:12394.04string.Format(0:0000.00,194.039)/结果为:0194.04string.Format(0:#.#,12394.039)/结果为:12394.04string.Format(0:#.#,194.039)/结果为:194,C#中的运算符,2.3 C#中的运算符,在程序中经常出现一些特殊符号,如+、-、*、=、等,这些特殊符号称作运算符。运算符用于对数据进行算术运算、赋值和比较等操作。在C#中,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符。,应用程序使用操作符来处理用户输入的数据。C#中的操作符可以分成:算术操作符算术赋值操作符一元操作符比较操作符逻辑操作符,使用操作符,算术操作符是用于对变量执行算术操作的符号。下表描述了常用的算术操作符。,算术操作符,算术赋值操作符用于执行算术操作,将某个值赋给操作数。下表列出了操作符的用法并描述了常用的赋值操作符。,算术赋值操作符,一元操作符用于增加或减少操作数1。下表说明了增加和减少操作符的用法。,一元操作符,接下来就针对其中比较重要的几点进行详细地讲解,具体如下:,定义了三个int类型的变量num1、num2、res。其中num1=1、num2=2。当进行“num1+num2+”运算时,由于运算符+写在了变量num2的后面,属于先运算再自增,因此变量num2在参与加法运算时其值仍然为2,res的值应为3。变量num2在参与运算之后会进行自增,因此num2的最终值为3。,2.3 C#中的运算符,特别注意:在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。,2.3 C#中的运算符,在赋值运算符的使用中,需要注意以下几个问题:1、在C#中可以通过一条赋值语句对多个变量进行赋值。在上述代码中,一条赋值语句将变量x,y,z的值同时赋值为5。需要特别注意的是,下面的这种写法在C#中是不可以的。2、除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x+=3就相当于x=x+3,首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可依此类推。,2.3 C#中的运算符,int x,y,z;x=y=z=5;/为三个变量同时赋值,int x=y=z=5;/这样写是错误的,比较运算符,比较操作符用于比较两个值并且在比较结果的基础上执行某个操作。下表介绍了常用的比较操作符的用法。,比较操作符,比较操作符(续),2.3.3 比较运算符比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false。比较运算符在使用时需要注意一个问题,不能将比较运算符“=”误写成赋值运算符“=”。,2.3 C#中的运算符,逻辑运算符,2.3.4 逻辑运算符逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。接下来通过下表列出C#中的逻辑运算符及其用法。,2.3 C#中的运算符,逻辑操作符用于评估表达式并返回布尔值。下表介绍了逻辑操作符的用法。,逻辑操作符,表达式1为False,表达式2不再计算,逻辑操作符(续),表达式1为True,表达式2不再计算,2.3 C#中的运算符,在使用逻辑运算符的过程中,需要注意以下几个细节:逻辑运算符可以针对结果为布尔值的表达式进行运算。如:x 3&y!=0。运算符“&”和“&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。当运算符“&”和“&”的右边为表达式时,两者在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&”被称作短路与。,2.3 C#中的运算符,2.3 C#中的运算符,在使用逻辑运算符的过程中,需要注意以下几个细节:3、运算符“|”和“|”都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。同与操作类似,“|”表示短路或,当运算符“|”的左边为true时,右边的表达式不会进行运算。,4、运算符“”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。,2.3 C#中的运算符,2023/1/10,思考题:,(m%3=0)&(m%2!=0)|(m%2=0)&(m%3!=0),(m%3=0)!=(m%2=0),ch=A&ch=Z,1.能且只能被和中的一个数整除。,2.ch是大写字母。,或,思考上述命题可否描述为AchZ?为什么?,2.3.6 位运算符,在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,我们把这种顺序称作运算符的优先级。接下来下表列出C#中运算符的优先级,数字越小优先级越高。,2.3 C#中的运算符,2.3 C#中的运算符,确定运算符的优先级,按照运算符的优先级计算表达式可以使用圆括号控制运算的顺序左结合和右结合 所有二元运算符都是左结合的 赋值运算符和条件运算符是右结合的,(10+20)/5 结果是 610+(20/5)结果是 14,10+20/5结果是 14,课堂练习-使用运算符,运算符举例,判断闰年(能被4整除但不能被100整除或能被400整除的年份)int year;/输入年份 if(?)/如果是闰年/显示闰年,2.4 选择结构语句,2.4.1 if条件语句if条件语句分为三种语法格式,每一种格式都有其自身的特点。1、if语句:如果满足某种条件,就进行某种处理。,2.4 选择结构语句,1、if语句:如果满足某种条件,就进行某种处理。,上述格式中,判断条件是一个布尔值,当判断条件为true时,中的执行语句才会执行。,2.4 选择结构语句,课堂练习,输入3个数a,b,c,按从大到小顺序输出。,2.4 选择结构语句,2、ifelse语句:指如果满足某种条件,就进行某种处理,否则就进行另一种处理。,2.4 选择结构语句,课堂练习,一个程序,定义一个双精度浮点数变量,从键盘输入一个数,判定它是否在500,1200的区间里。如果在该区间内,输出True;反之输出False。using System;namespace Mainclass Program static void Main(String args)/write your code here,2.4 选择结构语句,3、ifelse ifelse语句:用于对多个条件进行判断,进行多种不同的处理。,课堂练习,企业发放的奖金根据利润提成。利润低于或等于20万元时,奖金按5%提成;利润高于20万元,低于获等于50万元时,奖金按7%提成;50万到100万之间时,奖金按9%提成;高于100万元时,奖金按12%提成。从键盘输入当月利润,求应发放奖金总数?结果保持两位小数。,编一个程序,定义一个字符变量,使用if else语句,输入一个字符,如果它是大写字母,则把它转换成小写字母,如果它是小写字母,则把它转换成大写字母,否则不转换。然后输出结果。using System;namespace Mainclass Program static void Main(String args)int ch=Console.Read();/write your code here,多学一招,在C#中有一种特殊的运算叫做三元运算,它和if-else语句类似,语法如下:三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。,判断条件?表达式1:表达式2,2.4 选择结构语句,2.4.2 switch条件语句只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。,2.4 选择结构语句,只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码。,在switch语句中使用switch关键字来描述一个表达式,使用case关键字来描述目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句。,整型或转换为整型,整型或字符型,2.4 选择结构语句,2.4 选择结构语句,在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。,税务部门征收所的税,规定如下:1)收入在200元以内(不含200),免征;2)收入在200400元内(不含400),纳税3%;3)收入超过400元的纳税4%;请根据以上关系,输入本金m,输出应缴纳的税收tax。利用 switch 语句实现,举例,猜数字游戏:随机给出在某范围的一个数,通过程序判断确定该数编写程序确定用户输入的字符是元音还是辅音。编写程序确定用户输入的数是奇数还是偶数.,g1,Ex2,ex1.cs,2.5 循环结构语句,2.5.1 while循环语句while语句会反复地进行条件判断,只要条件成立,内的执行语句就会执行,直到条件不成立,while循环结束。,2.5 循环结构语句,while语句会反复地进行条件判断,只要条件成立,内的执行语句就会执行,直到条件不成立,while循环结束。,2.5 循环结构语句,2.5.2 do while循环语句dowhile循环语句和while循环语句功能类似。,2.5 循环结构语句,dowhile循环语句和while循环语句功能类似。,do while循环和while循环能实现同样的功能。然而在程序运行过程中,这两种语句还是有差别的。如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而dowhile循环的循环体还是会执行一次。,2.5 循环结构语句,2.5.3 for循环语句for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下:,for(初始化表达式;循环条件;操作表达式)执行语句,2.5 循环结构语句,for关键字后面()中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,中的执行语句为循环体。接下来分别用表示初始化表达式、表示循环条件、表示操作表达式、表示循环体,通过序号来具体分析for循环的执行流程。,2.5 循环结构语句,2.5 循环结构语句,为了让初学者能熟悉整个for循环的执行过程,现将例程2-13运行期间每次循环中变量sum和i的值通过下表罗列出来。,举例,编写程序从 1 到 1000 的所有奇数的和,Loop.cs,public void Display()/成员函数在执行某个特定任务的类中声明。int i,count=0;for(i=0;i 1000;i+)if(i%7=0)Console.Write(0,i);count+;if(count%10=0)Console.Write(n);,2.5 循环结构语句,2.5.4 跳转语句(break、continue、goto)跳转语句用于实现循环执行过程中程序流程的跳转,在C#中的跳转语句有break语句、continue语句和goto语句。接下来分别进行详细地讲解。1、break语句在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。,2.5 循环结构语句,2.5 循环结构语句,2、continue语句continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。,在嵌套循环语句中,continue语句后面也可以通过使用标记的方式结束本次外层循环,用法与break语句相似,在此不再举例说明。,3、goto语句当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想来跳出外层循环则需要对外层循环添加标记,然后使用goto语句。,2.5 循环结构语句,2.5 循环结构语句,2.5 循环结构语句,2.5.5 循环嵌套嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、dowhile、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环,格式如下。,for(初始化表达式;循环条件;操作表达式)for(初始化表达式;循环条件;操作表达式)执行语句,2.5 循环结构语句,接下来通过一个案例来实现使用“*”打印直角三角形。,本章主要介绍了学习C#所需的基础知识。首先介绍了C#语言的基本语法、常量、变量的定义以及一些常见运算符的使用,最后介绍了条件选择结构语句和循环结构语句的概念和使用。通过本章的学习,能够掌握C#程序的基本语法、格式,以及变量和运算符的使用,能够掌握几种流程控制语句的使用等。,