《C结构化程序设计计》由会员分享,可在线阅读,更多相关《C结构化程序设计计(75页珍藏版)》请在金锄头文库上搜索。
1、模块2-2结构化程序设计结构化程序设计本讲要点: 顺序结构 选择结构 循环结构 单选按钮与复选按钮 列表框与组合框 Timer控件 PictureBox控件 数组任何程序都是由顺序顺序、选择选择、循环循环三种基本控制结构进行构造 。3C#程序设计实用教程2.1顺序结构顺序结构2.1.1顺序结构的概念:顺序结构的概念: 有有些些简简单单的的程程序序是是按按程程序序语语句句的的编编写写顺顺序序依依次次执执行行的的,这种结构称为顺序结构。这种结构称为顺序结构。任务1:情境2-1欢迎软件 Label控件称为标签,它是最简单又最常用的控件控件称为标签,它是最简单又最常用的控件, ,用来显用来显示信息。示
2、信息。 常用属性常用属性 Text属性属性: 设置控件的文本内容:设置控件的文本内容: label1.Text=”姓名姓名”; AutoSize属性属性:设置控件是否能够自动调整大小设置控件是否能够自动调整大小 :label1.AutoSize=true; Location属性属性:设置控件在容器中的位置。设置控件在容器中的位置。 label1.Location= new Point(100,200); Size属性属性: 设置控件的大小设置控件的大小 : label1.Size=new System.Drawing.Size(20,30); BackColor属性属性: 设置控件的背景颜色。
3、设置控件的背景颜色。 label1.BackColor=label1.BackColor=System.Drawing.Color.RedSystem.Drawing.Color.Red; ; ForeColorForeColor属性属性: : 设置控件的前景颜色。设置控件的前景颜色。 BorderStyleBorderStyle属性属性: : 设置控件的边框风格。设置控件的边框风格。 Font属性属性: 设置字体。设置字体。Cursor属性属性: 设置鼠标光标在控件上的形状。设置鼠标光标在控件上的形状。2.1.1 标签标签Label任务任务2:文档编辑小程序:文档编辑小程序2.1.2 文本框
4、文本框TextBox3、TextBox控件称为文本框,主要用来接受用户的输入,控件称为文本框,主要用来接受用户的输入,当然也可以用于输出信息。当然也可以用于输出信息。常用属性常用属性 MultilineMultiline属性属性: : 设置文本框是否可以多行显示或输入。设置文本框是否可以多行显示或输入。 例如:例如:textBox1.Multiline=textBox1.Multiline=truetrue; ;ScrollBarsScrollBars属性属性: : 设置文本框的滚动条。设置文本框的滚动条。 NoneNone:无滚动条。无滚动条。VerticalVertical:有垂直滚动条。
5、有垂直滚动条。HorizontalHorizontal:有水平滚动条。有水平滚动条。BothBoth:两者都有。两者都有。ReadOnlyReadOnly属性属性: : 设置文本框是否只读。设置文本框是否只读。 例如:例如:textBox1.ReadOnly=true;textBox1.ReadOnly=true;2.1.2 文本框文本框TextBox3、TextBox常用属性常用属性 PasswordCharPasswordChar属性属性: : 设置在文本框中输入口令时的掩盖字符。设置在文本框中输入口令时的掩盖字符。 例如:例如:textBox1.PasswordChar=textBox1
6、.PasswordChar=*;*;SelectionLengthSelectionLength属性属性: : 设置或获取文本框设置或获取文本框中选择文本的中选择文本的字符个数字符个数。使用语法如下:使用语法如下:Object.SelectionLengthObject.SelectionLength=n;=n; / /使文本框从头开始选中使文本框从头开始选中n n个字符个字符intint n= n= Object.SelectionLengthObject.SelectionLength; /; /获取文本框中选中的字符个数获取文本框中选中的字符个数例如:例如:if(textBox1.Sel
7、ectionLengt0)if(textBox1.SelectionLengt0)SelectedTextSelectedText属性属性: : 获取文本框中选择的字符串获取文本框中选择的字符串 举例如下:举例如下:label1.Text=textBox1.SelectedText;label1.Text=textBox1.SelectedText;SelectionStartSelectionStart: :选择的起始位置(光标位置)选择的起始位置(光标位置)2.1.2 文本框文本框TextBox3、TextBox常用方法常用方法Clear()Clear()方法方法: : 从文本框中清除所有
8、文本。从文本框中清除所有文本。 以下两行程序代码是等效的:以下两行程序代码是等效的: textBox1.Clear();textBox1.Clear(); textBox1.Text=”; textBox1.Text=”;Copy()Copy()方法方法: : 将文本框中将文本框中选定的内容复制选定的内容复制到剪贴板中。到剪贴板中。 例如:例如:textBox1.Copy();textBox1.Copy();Cut()Cut()方法方法: : 将文本框中将文本框中选定的内容剪切选定的内容剪切到剪贴板中。到剪贴板中。 例如:例如: textBox1.Cut();textBox1.Cut();Pa
9、ste()Paste()方方法法: : 用用剪剪贴贴板板中中的的内内容容替替换换文文本本框框中中当当前前选选定定的的内内容容。例例如:如: textBox1.Paste();textBox1.Paste();Select()Select()方法方法: : 选定文本框的一部分文字。语法格式为:选定文本框的一部分文字。语法格式为: textBox1.Select(int textBox1.Select(int start,intstart,int Length); Length);2.1.2 文本框文本框TextBox3、TextBox常用方法常用方法SelectAllSelectAll()()方
10、法方法: : 选定文本框的选定文本框的全部文字全部文字。例如:。例如: textBox1.SelectAll();textBox1.SelectAll();Focus()Focus()方法方法: : 将输入焦点置于文本框内。例如:将输入焦点置于文本框内。例如: textBox1.Focus();textBox1.Focus();Undo()Undo()方方法法: : 撤撤消消在在文文本本框框中中的的上上一一次次编编辑辑操操作作。例例如:如: textBoxEdit.UndotextBoxEdit.Undo();();2.1.2 文本框文本框TextBox任务3:小学生10以内加法练习软件常用属
11、性常用属性 Image属性属性: 设置命令按钮上显示的图片。设置命令按钮上显示的图片。Enabled属性属性: 设置命令按钮的可用性设置命令按钮的可用性使用语法如下:使用语法如下: Object.Enabled=true(或或false);常用事件常用事件常用的只有常用的只有clickclick,单击鼠标左键时发生单击鼠标左键时发生2.1.3 按钮按钮ButtonParse()方法方法:主要用于将数字的主要用于将数字的字符串字符串表示形式转换为它的表示形式转换为它的等效等效的其他基本的其他基本数值数值类型。类型。例:例:strings=“18”;inta=int.Parse(s)-10;/a=
12、8intb=a+int.Parse(Console.ReadLine();string s = 13.3; double d=double.Parse(s);2.1.4 字符串与数值类型的转换字符串与数值类型的转换Convert类类:Conver.静态方法名静态方法名(字符串字符串)例如:例如:string s = 13;int a=Convert.ToInt32(s);double d= Convert.ToDouble(s);要转换成的数据类型要转换成的数据类型2.1.4 字符串与数值类型的转换字符串与数值类型的转换其他类型转换成字符串类型ToString()方法double radius
13、=2.67;string s;s=radius.ToString():2.1.4 字符串与数值类型的转换字符串与数值类型的转换提示:用提示:用Random类产生一个随机数对象,然后是用该对类产生一个随机数对象,然后是用该对象的象的Next方法生成一个整型随机数。方法生成一个整型随机数。 Random rn=new Random(); int x=rn.Next(100);任务任务3:小学生:小学生10以内加法练习软件以内加法练习软件rn.Next():产生随机整数产生随机整数rn.Next(100);产生产生0100之间的随机整数之间的随机整数rn.Next(100,200);产生产生1002
14、00之间的随机数之间的随机数rn.NextDouble();产生产生0.01.0之间的随机数之间的随机数选择结构,是一种常用的主要基本结构,是计选择结构,是一种常用的主要基本结构,是计算机根据所给定算机根据所给定选择条件为真或否选择条件为真或否,而决定从,而决定从各实际可能的不同操作分支中执行某一分支的各实际可能的不同操作分支中执行某一分支的相应操作。相应操作。 2. 2 选择结构的概念选择结构的概念if语句一般用于简单选择,即选择项中有一个或两个语句一般用于简单选择,即选择项中有一个或两个分支。格式为:分支。格式为: if (布尔布尔条件表达式条件表达式) 语句块语句块1; else 语句块
15、语句块2; 2.2.1单分支选择结构(单分支选择结构(if语句)语句)必须是布尔类型的必须是布尔类型的可以是单语句,可以是单语句,也可以是多语句也可以是多语句可以省略可以省略2用用if语句实现多分支选择结构语句实现多分支选择结构 格式格式 :if (if (表达式表达式1)1) 语句块语句块1;1; else if( else if(表达式表达式2)2) 语句块语句块2;2; else if( else if(表达式表达式3)3) 语句块语句块3;3; else else 语句块语句块n;n; 2.2.2 switch 结构结构C# 中的中的 switch 语句语句switch (int /
16、char / string表达式表达式) case 常量表达式常量表达式1: 语句语句1; break; /必须有必须有 case 常量表达式常量表达式2: 语句语句2; break; /必须有必须有 default: 语句语句n; break; /必须有必须有C# C# 中的中的 switch 结构小结结构小结条件判断的表达式类型条件判断的表达式类型 整型或字符型整型或字符型或字符串或字符串break 语句的要求:语句的要求:每个每个 case 都有都有 breakdefault 也要有也要有 break特殊情况:特殊情况:/ 示例示例6中的代码中的代码string time;switch(
17、time) case 6: case 7: case 8: case 9: case 10: Console.WriteLine(上午好上午好 ); break; / default: Console.WriteLine(休息时间休息时间); break;case 中没有其他语句时,中没有其他语句时,不需要不需要break语句语句任务4:水果价格任务任务5:设计设计Windows应用程序,单击应用程序,单击【计算计算】按钮,按钮,根据对单选按钮的选择,计算加、减、乘、除中的根据对单选按钮的选择,计算加、减、乘、除中的一种运算。一种运算。 结果如图:结果如图:1、 单选按钮(单选按钮(Radio
18、Button) 单选按钮单选按钮也叫也叫选项按钮选项按钮,为用户提供从多个选,为用户提供从多个选项中选择一个选项的功能,因此单选按钮顾名思项中选择一个选项的功能,因此单选按钮顾名思义是一种义是一种“多选一多选一”的控件。的控件。 常用属性常用属性 CheckedChecked属性属性: : 设置和获取控件的选中状态。设置和获取控件的选中状态。使使用用的的语语法法为为:object.Checkedobject.Checked=true;=true;/使使控控件件被被选选中中例如:例如: if(radioButton1.Checked=true)if(radioButton1.Checked=tr
19、ue) Text属性属性: 圆圈旁边的指示性文字圆圈旁边的指示性文字2.2.3 使用单选按钮与复选框控件使用单选按钮与复选框控件任务任务6 6:设计设计Windows应用程序,单击应用程序,单击【计算计算】按钮,按钮,根据对复选框的选择,计算加、减、乘、除运算。根据对复选框的选择,计算加、减、乘、除运算。2.2.3 使用单选按钮与复选框控件使用单选按钮与复选框控件2、 复选按钮(复选按钮(CheckBox) 可以在窗口同时可以在窗口同时选中多个复选框选中多个复选框,这是其,这是其和单选按钮的区别。和单选按钮的区别。 检查框与单选钮共享大多数的常用属性、检查框与单选钮共享大多数的常用属性、方法和
20、事件。方法和事件。2.2.3 使用单选按钮与复选框控件使用单选按钮与复选框控件 分分组框框的作用是将一些控件捆绑成一个的作用是将一些控件捆绑成一个组,使用户界面清晰明了。组,使用户界面清晰明了。设计控件时,要先将设计控件时,要先将GroupBoxGroupBox控件拖入窗体控件拖入窗体内,然后再向框内加入其他控件。内,然后再向框内加入其他控件。GroupBox控件一般只修改其控件一般只修改其Text属性,属性,Text是框头的提示性文字。是框头的提示性文字。 2.2.4 使用分组框控件(GroupBox)任任务务7 7:设设计计一一个个以以0.10.1秒秒为为单单位位的的秒秒表表,单单击击【开
21、开始始】按钮开始计时,单击按钮开始计时,单击【停止停止】按钮停止计时按钮停止计时。Timer控件称计时器,它用来计时。控件称计时器,它用来计时。 常用属性常用属性 EnabledEnabled属性属性: : 设置计时器的可用性设置计时器的可用性例如:例如:timer1.Enabled=true;timer1.Enabled=true; IntervalInterval属属性性: : 设设定定计计时时器器的的时时间间间间隔隔, ,单单位位为为毫毫秒秒例如:例如:timer1.Interval=1000; timer1.Interval=1000; 常用的事件常用的事件TimerTimer控控件件
22、的的事事件件只只有有一一个个TickTick,它它在在指指定定的的时时间间隔发生间间隔发生 2.2.5 Timer控件 【开始开始】按钮的按钮的ClickClick事件代码为:事件代码为:private void private void btnStart_Click(objectbtnStart_Click(object sender, sender, EventArgsEventArgs e) e) txtSeconds.TexttxtSeconds.Text = 0; = 0; tmrWatch.EnabledtmrWatch.Enabled = true; = true; 【停止停止】
23、按钮的按钮的ClickClick事件代码为:事件代码为:private void private void btnStop_Click(objectbtnStop_Click(object sender, sender, EventArgsEventArgs e) e) tmrWatch.EnabledtmrWatch.Enabled = false; = false; 计时器控件计时器控件tmrWatchtmrWatch的的TickTick事件代码为:事件代码为:private void private void tmrWatch_Tick(objecttmrWatch_Tick(objec
24、t sender, sender, EventArgsEventArgs e) e) txtSeconds.TexttxtSeconds.Text = ( = (double.Parse(txtSeconds.Textdouble.Parse(txtSeconds.Text) + 0.1) + ;) + 0.1) + ; 任务任务8:移动的文字:移动的文字Point p;private void Form1_Load(object sender, EventArgs e) timer1.Enabled = true; p = label1.Location; private void time
25、r1_Tick(object sender, EventArgs e) p.X += 19; if (p.X this.Width) p.X = 0; label1.Location = p; 任务任务9:电子相册:电子相册制作一个照片自动展示程序,程序启动后将循环显示照片,每张照片在屏幕上停留0.5秒。当用户单击照片时将显示一个提示框,询问用户是否停止展示,如果用户回答“是”将停止展示,回答“否”将接着展示。1、 图片框控件图片框控件PictureBox 图片框控件图片框控件PictureBox用来在窗体上显示一个图片。用来在窗体上显示一个图片。常用属性常用属性 ImageImage属性:用
26、来指定图片源。单击浏览按钮。属性:用来指定图片源。单击浏览按钮。设置该属性常用以下两种方式设置该属性常用以下两种方式: 设计时单击设计时单击Image属性。属性。 通过通过Image.FromFile方法直接从文件中加载。形式方法直接从文件中加载。形式如下:如下:pictureBox对象名对象名.Image=Image.FromFile(图像文件名图像文件名); 2.2.6 PictureBox控件的使用控件的使用常用属性常用属性 SizeModeSizeMode属属性性:设置图片框的尺寸模式,默认值为Normal。Value的取值如表3-2所示。值值含含 义义NormalNormal正正常常
27、模模式式。图图片片显显示示在在控控件件的的左左上上角角,若若图图片片比比控控件件大大,只只显显示示图图片片的的左左上部分,其余部分被剪裁掉上部分,其余部分被剪裁掉StretchImageStretchImage伸缩模式。控件中的图片被收缩或拉伸,以适应控件的大小伸缩模式。控件中的图片被收缩或拉伸,以适应控件的大小AutoSizeAutoSize自动大小模式。控件能自动调整大小以适应图片的尺寸自动大小模式。控件能自动调整大小以适应图片的尺寸CenterImageCenterImage居居中中模模式式。如如果果图图片片比比控控件件小小,图图片片显显示示于于控控件件的的中中心心,如如果果图图片片比比
28、控控件件大,只显示图片的中心部分,边缘部分被剪裁掉大,只显示图片的中心部分,边缘部分被剪裁掉常用属性常用属性 EnabledEnabled属性属性: : 设置控件的可用性。使用语法为:设置控件的可用性。使用语法为:Object.EnabledObject.Enabled=true=true(或或falsefalse); ; VisibleVisible属性属性: : 设置控件的可见性。使用语法为:设置控件的可见性。使用语法为: Object.EnabledObject.Enabled=true=true(或或falsefalse); ;图片框的图片框的BorderStyleBorderStyl
29、e属性可设置其边框样式:属性可设置其边框样式:值值None表示没有边框;表示没有边框;FixedSingle表示单线边框;表示单线边框;Fixed3D表示立体边框。表示立体边框。循环循环是指在指定的条件下多次是指在指定的条件下多次重复执行重复执行一组语一组语句。被重复执行的一组语句称为句。被重复执行的一组语句称为循环体循环体。2.3 循环结构概念循环结构概念2.3 循环结构概念循环结构概念 C#中提供了中提供了4种循环语句:种循环语句:while循环循环dowhile循环循环 for循环循环foreach循环循环2.3.1 while循环语句循环语句 格式格式格式格式 : while (条件表
30、达式条件表达式) 循环体;循环体; 不要加“;”2.3.1 dowhile循环语句 格式格式 : do 循环体;循环体; while(条件表达式)(条件表达式);必须必须必须必须有有有有“ “;” ”2.3.1 for循环语句 for循环常常用于循环常常用于已知循环次数已知循环次数的情况。的情况。 语法格式:语法格式: for (初始化表达式;循环条件;迭代表达式初始化表达式;循环条件;迭代表达式 ) 循环语句序列循环语句序列; 2.3.1 foreach 循环结构循环结构foreach循环一般用于遍历整个集合或数组循环一般用于遍历整个集合或数组foreach (元素类型元素类型 变量名变量名
31、 in 集合或者数组名集合或者数组名) / 语句语句例例5-15:输入一个字符串,输出其中的每个字符:输入一个字符串,输出其中的每个字符 关键代码分析关键代码分析static void Main(string args) Console.WriteLine(请输入一个字符串请输入一个字符串:); / 输入提示输入提示 / 从控制台读入字符串从控制台读入字符串 string line = Console.ReadLine(); / 循环输出字符串中的字符循环输出字符串中的字符 foreach (char c in line) Console.WriteLine(c); Console.ReadL
32、ine();依次循环字符串中依次循环字符串中的每个字符的每个字符任务:10:实现如下效果:1、 列表框(列表框(ListBox) ListBox控件为用户提供了选项的列表,用户可以从列控件为用户提供了选项的列表,用户可以从列表中进行选择输入。如果项目数目超过列表框可显示的表中进行选择输入。如果项目数目超过列表框可显示的数目,控件上将自动出现滚动条,它是一种规范输入的数目,控件上将自动出现滚动条,它是一种规范输入的好工具。好工具。1 1、列表框、列表框( (ListBoxListBox) )的常用属性的常用属性DataSource属性属性: 列表框获取列表项的数据源。列表框获取列表项的数据源。
33、Items属性属性: 列表框中的各项。列表框中的各项。 例如:例如:listBox1.Items.Add(“北京北京”); MultiColumn属性属性: 设置列表框是否可以多列显示。设置列表框是否可以多列显示。 例如:例如:listBox1.MultiColumn=true2.3.2 列表框和组合框列表框和组合框 SelectedIndex属性属性: 列表框中第一个选定项的索引号。列表框中第一个选定项的索引号。属性值为属性值为int类型,从类型,从0开始开始 ,未选中任何项时为,未选中任何项时为-1。 例如:例如:int n= listBox1.SelectedIndex;/获取选择项的索
34、获取选择项的索引号引号 if(listBox1.SelectedIndex=-1) /表示列表框表示列表框listBox1中若无选择项时该如何处理中若无选择项时该如何处理 SelectedItem属性属性: 列表框中的选定项。列表框中的选定项。 例如语句:例如语句:textBox1.Text=listBox1.SelectedItem.ToString(); Text属性属性: 列表框中选定项的文本。列表框中选定项的文本。 于是:于是:listBox1.SelectedItem.ToString()与与listBox1.Text等价。等价。2.3.2 列表框和组合框列表框和组合框2 2、列表框
35、、列表框( (ListBoxListBox) )的常用事件的常用事件DoubleClick事件事件: 双击控件时发生。双击控件时发生。SelectedIndexChange事件事件: 列表框中选择项的索列表框中选择项的索引号变化时发生。引号变化时发生。2.3.2 列表框和组合框列表框和组合框3 3、ItemsItems集合的常用方法和属性集合的常用方法和属性 Add方法方法: 向向Items添加列表项。添加列表项。 例如:例如:listBox2.Items.Add(listBox1.Text);Remove方法方法:从从Items移除指定对象移除指定对象 RemoveAt方法方法: 从从Ite
36、ms移除指定索引号的某项。移除指定索引号的某项。 例如:例如:listBox1.Items.RemoveAt(listBox1.1); Insert方法方法: 向向Items插入列表项到指定索引处。插入列表项到指定索引处。 例如:例如:listBox1.Items.Insert(2,南京南京); Clear方法方法: 从从Items移除所有列表项移除所有列表项 例如:例如:listBox1.Items.Clear(); Count属性属性: Items的项数。的项数。 例如:例如:for(int i=0;ilistBox1.Items.Count;i+)2.3.2 列表框和组合框列表框和组合框
37、参考程序:参考程序: private void tbtnRight_Click(object sender, EventArgs e) if (lstLeft.SelectedIndex != -1) lstRight.Items.Add(lstLeft.SelectedItem); lstBottom.Items.Add(lstLeft.SelectedItem.ToString() + 被被移至右侧移至右侧); lstLeft.Items.Remove(lstLeft.SelectedItem); 参考程序:参考程序: private void bbtnLeft_Click(object
38、sender, EventArgs e) if (lstRight.SelectedItems.Count = 0) return; else lstLeft.Items.Add(lstRight.SelectedItem); lstBottom.Items.Add(lstRight.SelectedItem.ToString()+被被移至左侧移至左侧); lstRight.Items.RemoveAt(lstRight.SelectedIndex); 参考程序:参考程序: private void btnRightAll_Click(object sender, EventArgs e) f
39、or (int i = 0; i lstLeft.Items.Count; i+) lstLeft.SelectedIndex = i; lstRight.Items.Add(lstLeft.SelectedItem); lstBottom.Items.Add(左侧列表项全部被移至右侧左侧列表项全部被移至右侧); lstLeft.Items.Clear(); 参考程序:参考程序:private void btnLeftAll_Click(object sender, EventArgs e) foreach (object item in lstRight.Items) lstLeft.Ite
40、ms.Add(item); lstBottom.Items.Add(右侧列表项全部被移至左侧右侧列表项全部被移至左侧); lstRight.Items.Clear(); 任务11:实现如下运行效果: ComboBoxComboBox控件称为组合框,它是控件称为组合框,它是文本框文本框和和列表框列表框的组合,既可以接受用户的输入,的组合,既可以接受用户的输入,也可以接受用户的选择。也可以接受用户的选择。2、组合框、组合框1 1、常用属性、常用属性DropDownStyleDropDownStyle属性属性: : 控制组合框的外观。控制组合框的外观。Object.DropDownStyleObje
41、ct.DropDownStyle= = System.Windows.Forms.System.Windows.Forms.ComboBoxStyle.ValueComboBoxStyle.Value; ;DropDownStyleDropDownStyle属属性性的的取取值值ValueValue由由ComboBoxStyleComboBoxStyle枚枚举举量量确确定定,如表所示。如表所示。2 2、 组合框(组合框(ComboBoxComboBox)值值含含 义义SimpieSimpie控件的列表框部分总是可见的,且用户可以编辑文本框中的文本控件的列表框部分总是可见的,且用户可以编辑文本框中
42、的文本DropDownDropDown控控件件的的列列表表框框部部分分是是隐隐藏藏的的,且且用用户户可可以以编编辑辑文文本本框框中中的的文文本本。默默认认风格风格DropDownListDropDownList控件的列表框部分是隐藏的,且用户不可以编辑文本框中的文本控件的列表框部分是隐藏的,且用户不可以编辑文本框中的文本2 2、常用事件、常用事件DropDownDropDown事件事件: : 展开下拉列表时发生。展开下拉列表时发生。SelectedIndexChangedSelectedIndexChanged事事件件: : 组组合合框框中中选选择择项的索引号变化时发生。项的索引号变化时发生。
43、TextChangedTextChanged事事件件: : 组组合合框框中中的的文文本本变变化化时时发发生。生。 主要程序:主要程序:private void cboCountry_SelectedIndexChanged_1(object sender, EventArgs e) switch (cboCountry.SelectedIndex) case 0: cboCity.Items.Clear(); cboCity.Items.Add(北京北京); cboCity.Items.Add(上海上海); cboCity.Items.Add(天津天津); cboCity.SelectedIn
44、dex = 0; break; case 1: cboCity.Items.Clear(); cboCity.Items.Add(华盛顿华盛顿); cboCity.Items.Add(纽约纽约); cboCity.Items.Add(芝加哥芝加哥); cboCity.SelectedIndex = 0; break; case 2: cboCity.Items.Clear(); cboCity.Items.Add(伦敦伦敦); cboCity.Items.Add(曼彻斯特曼彻斯特); cboCity.Items.Add(考文垂考文垂); cboCity.SelectedIndex = 0; b
45、reak; default: cboCity.Items.Clear(); break; 2.3.3 break和continue语句 在在C#中可以用跳转语句来改变程序的执行顺序。在程序中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有中的跳转语句有break语句语句、continue语句语句、goto语语句句和和return语句语句等。等。1. break语句语句 使用使用break语句时,将结束循环,执行循环的后续语句。语句时,将结束循环,执行循环的后续语句。 2. continue语句语句
46、continue语句作用是结束本次循环,跳过该语句之后的语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。否执行下一次循环。 流程控制进阶流程控制进阶在循环结构中,在循环结构中, continue 和和 break怎样跳转?怎样跳转?for() continue; for() break; 跳出循环结构跳出循环结构跳到下次循环跳到下次循环在循环中会怎样呢?在循环中会怎样呢?2.4.1数组的概念数组的概念C#的数组是一种数据结构,它包含若干相同的数组是一种数据结构,它包含若干相同类型的变量
47、。类型的变量。包含在数组中的变量,也称为包含在数组中的变量,也称为数数组元素组元素。在在C#中,数组有一维(只有一个下标)或中,数组有一维(只有一个下标)或者多维(有多个下标)。者多维(有多个下标)。对于每一维中,数组中数组元素的个数叫对于每一维中,数组中数组元素的个数叫这个维的这个维的数组长度数组长度。2.4 数组数组2.4.2一维数组一维数组1一维数组的定义一维数组的定义格式:格式:数组类型数组类型数组名;数组名;例:例:inta;stringarr;charcarr;合法的标识符合法的标识符2动态初始化动态初始化格式:格式:数组名数组名数组名数组名=new=new数据类型数据类型数据类型
48、数据类型 数组长度数组长度数组长度数组长度 ;例:例:a=newint6;数值类型初始化为数值类型初始化为数值类型初始化为数值类型初始化为0 0,布尔类型初始化为,布尔类型初始化为,布尔类型初始化为,布尔类型初始化为falsefalse,字符串类,字符串类,字符串类,字符串类型初始化为型初始化为型初始化为型初始化为nullnull。也可以将定义和动态初始化写在一起:也可以将定义和动态初始化写在一起:例:例:doublea=newdouble10;stringarr=newstring3“as”,”vb”,”23”;用用new关键字关键字可以可以没有没有3静态初始化静态初始化静态初始化数组的格式
49、如下:静态初始化数组的格式如下:数据类型数据类型数据类型数据类型数组名数组名数组名数组名=元素元素元素元素11,元素,元素,元素,元素2.2.;例如:例如:intIntArr=-45,9,29,32,46;charStringArr=a,b,c,d;只有此唯一格式只有此唯一格式4访问一维数组中的元素访问一维数组中的元素n使用数组名与下标(索引)可以唯一确定数组使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。中的某个元素,从而实现对该元素的访问。下标从下标从0到数组到数组长度减长度减1。例如:例如:inta=newint12;a0=4;a11=23;n 在访问数组元
50、素时,要注意不要使下标越界,例如:在访问数组元素时,要注意不要使下标越界,例如: int A=new int5; A5=15; / 下标越界下标越界n 每一个每一个C#的数组都知道自己的长度,数组的长度由的数组都知道自己的长度,数组的长度由 Length 决定。决定。 int i=a.Length; /i=12【任务任务12】创建一个一维int数组,初始化数组元素并打印。 int arr=new int5; for (int i = 0; i arr.Length; i+) arri = i * i; for (int i = 0; i arr.Length; i+) Console.Writ
51、e(“arri”+” ”); 【任务任务13】利用Array类的Sort方法将数组按从小到大的顺序输出。 Array.Sort(QueArray); /对数组排序需排序的数组需排序的数组名名练练练练 习习习习5 分钟分钟任务任务14定义一个包含12个元素的double类型数组score,保存学生的学习成绩,数组元素值为用户输入,将成绩按从小到大排序,并求平均成绩。5. foreach循环语句循环语句 用用foreach循环语句遍历数组:循环语句遍历数组:foreachforeach循环语句的格式为:循环语句的格式为: foreach(类型名称类型名称 变量名称变量名称 in 数组名称数组名称)
52、 循环体;循环体; 例如,可以将例如,可以将【任务任务1212】中的输出循环改为:中的输出循环改为:foreach(intforeach(int i in i in QueArrayQueArray) ) Console.Write(iConsole.Write(i+” ”);+” ”); 是一个循环变量,类是一个循环变量,类型必须与数组的类型型必须与数组的类型一致,依次获取数组一致,依次获取数组中各元素的值中各元素的值2.4.3二维数组二维数组在多维数组中,二维数组是最简单也是最常用的数组。在多维数组中,二维数组是最简单也是最常用的数组。1二维数组的定义二维数组的定义数据类型数据类型,数组名
53、;数组名; 例如:例如:double,dArr;/定义一个定义一个double型二维数组型二维数组2二维数组的初始化二维数组的初始化格式:格式:数组名数组名=new数据类型数据类型数组长度数组长度1,数组长度,数组长度2;例如:例如:dArr=newdouble3,4;也可以将二维数组的也可以将二维数组的定义定义与与动态初始化动态初始化合并在一条语句中。合并在一条语句中。例如:例如:double,dArr=newdouble3,4;初始化后,给每个元素赋上初值。初始化后,给每个元素赋上初值。在动态初始化二维数组时,也可以直接为其赋予初始化值。在动态初始化二维数组时,也可以直接为其赋予初始化值。
54、例如:例如:int,IntArr=newint,1,1,3,4,5,6;二维数组也可以进行二维数组也可以进行静态静态初始化初始化:char,c=a,b,c,x,y,z;3. 访问二维数组的元素访问二维数组的元素二维数组也是通过二维数组也是通过数组名数组名和和下标值下标值来访问数组元素的。来访问数组元素的。下标值也是从下标值也是从0开始的。二维数组需要开始的。二维数组需要两个下标两个下标才能唯才能唯一标识一个数组元素,其中第个下标表示该元素所在一标识一个数组元素,其中第个下标表示该元素所在的行,第的行,第2个下标表示该元素所在的列。个下标表示该元素所在的列。如如intArr2,0代表数组名为代表
55、数组名为intArr的二维数组中位于第的二维数组中位于第3行、第行、第1列的元素。列的元素。根据二维数组的特点,根据二维数组的特点,访问二维数组中的元素访问二维数组中的元素通常需要通常需要一个一个二重循环二重循环。9/9/202474C#程序设计实用教程任务任务15:创建数组创建数组int , A=32,61,28,39,58,23,29,10,69;输出该二维数组,并计算所有元素的平均值。输出该二维数组,并计算所有元素的平均值。static void Main(string args) int, A = 32, 61, 28 , 39, 58, 23 , 29, 10, 69 ; int sum=0; for (int i = 0; i 3; i+) for (int j = 0; j 3; j+) Console.Write(Ai, j + ); sum+=Ai,j; Console.WriteLine(); Console.WriteLine(二维数组的平均值为:+sum/A.Length); 如何完成动态初始如何完成动态初始化?化?