第4章 C#控制语句_第1页
第4章 C#控制语句_第2页
第4章 C#控制语句_第3页
第4章 C#控制语句_第4页
第4章 C#控制语句_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1选择控制语句4.2循环控制语句4.3跳转语句第4章C#控制语句2015年2月4.1选择控制语句4.1.1if语句4.1.2if…else语句4.1.3if…elseif语句4.1.4switch语句2015年2月

if语句用于在程序中有条件地执行某一语句序列,基本语法格式如下:

if(条件表达式)语句;其中,“条件表达式”是一个关系表达式或逻辑表达式,当“条件表达式”为true时,执行后面的“语句”。4.1.1if语句2015年2月语法形式如下:

if(条件表达式)

语句1;

else

语句2;说明:“条件表达式”是一个关系表达式或逻辑表达式。当“条件表达式”为true时执行“语句1”;当“条件表达式”为false时执行“语句2”。应用举例1:创建一个控制台应用程序,声明一个int类型变量i,将其初始化为927。然后通过if…else判断i是否大于927,若大于输出“i大于927”,否则输出“i不大于927”。应用举例2:创建一个控制台应用程序,屏幕显示“请输入一个年份:”,然后判断该年份是否为闰年。4.1.2if…else语句2015年2月应用举例1usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest01{classProgram{staticvoidMain(string[]args){inti=927; //声明一个int类型变量iif(i>927) //调用if语句判断I是否大于927{Console.WriteLine("i大于927"); //如果大于927则输出“I大于927”}else //否则

{Console.WriteLine("i不大于927"); //输出“I不大于927”}Console.ReadLine();}}}2015年2月应用举例2usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest23{classProgram{staticvoidMain(string[]args){Console.Write(“请输入一个年份:”);//屏幕输入提示字符串stringstr=Console.ReadLine();//获取用户输入的年份intyear=Int32.Parse(str);//将输入的年份转换为int类型//计算输入的年份是否为闰年boolisleapyear=((year%400)==0)||(((year%4)==0)&&((year%100)!=0));stringyesno=isleapyear?“是”:“不是”;//条件判断是否闰年Console.WriteLine("{0}年{1}闰年",year,yesno);Console.ReadLine();}}}2015年2月if…elseif语句用于进行多重判断,其语法形式如下:

if(条件表达式1)语句1;elseif(条件表达式2)语句2;…elseif(条件表达式n)语句n;else语句n+1;falsefalsefalsetruetruetrue条件表达式1语句1条件表达式2条件表达式n语句2语句n+1语句nfalse┇4.1.3if…elseif语句应用举例2015年2月编写一个程序,将用户输入的分数转换成等级。usingSystem;namespaceProj4_4{classProgram{staticvoidMain(string[]args){ floatx; Console.Write("分数:"); x=float.Parse(Console.ReadLine()); if(x>=90)Console.WriteLine("等级为A"); elseif(x>=80)Console.WriteLine("等级为B"); elseif(x>=70)Console.WriteLine("等级为C"); elseif(x>=60)Console.WriteLine("等级为D"); elseConsole.WriteLine("等级为E");}}}if…elseif语句应用举例2015年2月switch语句是多分支选择语句,也称为开关语句。它根据表达式的值使程序从多个分支中选择一个用于执行的分支,用于进行多重判断。switch语句的语法形式为:switch(表达式){ case常量表达式1:语句1;break; case常量表达式2:语句2;break; … case常量表达式n:语句n;break; default:语句n+1;break;}

说明:表达式为判断条件;case列出判断分支;哪个分支的常量表达式符合表达式的条件,就执行其后面的语句块,并跳出switch;若所有case分支都不符合条件,则执行default:后面的语句块。见图应用举例:编写一个程序,要求输入课程后显示相应的学分:数学(代号为m,8学分)、物理(代号为p,5学分)、化学(代号为c,5学分)、语文(代号为w,8学分)、英语(代号为e,6学分)。(见代码)4.1.4switch语句2015年2月falsefalsefalsefalsetruetrue┇语句2语句n+1语句n表达式=常量表达式n表达式=常量表达式2语句1表达式=常量表达式1┇trueswitch语句执行流程2015年2月usingSystem;namespaceProj4_5{classProgram{staticvoidMain(string[]args){ charch; Console.Write("课程代号:"); ch=(char)Console.Read(); switch(ch) {case'm':case'M':case'w':case'W': Console.WriteLine("8学分"); break;case'p':case'P':case'c':case'C': Console.WriteLine("5学分"); break;case'e':case'E': Console.WriteLine("6学分"); break;default: Console.WriteLine("输入的课程代号不正确"); break; }}}}switch语句应用举例2015年2月4.2循环控制语句4.2.1while语句4.2.2do-while语句4.2.3for语句4.2.4foreach语句循环控制语句提供重复处理的能力,当某一特定条件成立时,循环主语句就重复执行循环体中的代码。每循环一次就会测试一下循环条件,如果条件不成立,则结束循环。C#支持如下3种格式的循环语句。2015年2月

while语句的一般语法格式如下:

while(条件表达式){

语句;}

语句执行流程如右图所示。应用举例:编写一个程序,将用户输入的多位整数反向显示出来。(见代码)falsetrue条件表达式语句while4.2.1while语句2015年2月usingSystem;namespaceProj4_7{classProgram{staticvoidMain(string[]args){intdigit,num; Console.Write("输入一个整数:"); num=int.Parse(Console.ReadLine()); Console.Write("反向显示结果:"); while(num!=0) {digit=num%10;//依次求个位、十位…上的数字digitnum=num/10;//改变循环条件Console.Write(digit); } Console.WriteLine();}}}while语句应用举例2015年2月

do-while语句的一般语法格式如下:

do{

语句;

}while(条件表达式);

语句执行流程如右图所示。应用举例:创建一个控制台应用程序声明一个int类型的数组,并初始化数组,然后通过do-while语句循环输出数组中的所有成员。(见代码)4.2.2do-while语句

falsetrue条件

表达式

语句

do-while

2015年2月usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest05{classProgram{staticvoidMain(string[]args){//声明一个int类型的数组,并初始化

int[]myNum=newint[6]{927,112,111,524,521,2008};ints=0; //声明一个int类型的变量s并初始化为0do

{//输出数组中的值

Console.WriteLine("myNum[{0}]的值为{1}",s,myNum[s]);s++; //s自增1}while(s<6);Console.ReadLine();}}}do-while语句应用举例2015年2月

for语句通常用于预先知道循环次数的情况,其一般语法格式如下:

for(表达式1;表达式2;表达式3){

语句;}

说明:表达式1用于初始化循环控制变量;表达式2用于确定循环条件;表达式3用于改变循环控制变量;语句;在表达式2成立时执行。执行流程如右图所示。应用举例:创建一个控制台应用程序,输出乘法表。(见代码)truefalse表达式2语句表达式1表达式3for4.2.3for语句2015年2月usingSystem;namespaceProj4_8{classProgram{staticvoidMain(string[]args){ inti,j; for(i=1;i<=9;i++) {for(j=1;j<=i;j++)Console.Write("{0}×{1}={2}",i,j,i*j);Console.WriteLine(); }}}}for语句应用举例2015年2月4.2.4foreach语句Foreach语句用于枚举一个集合的元素,并对集合中的每个元素执行一次嵌入语句。但该语句不能用于更改集合内容,以避免产生不可预测的错误。Foreach语句的基本形式如下:

foreach([类型][循环变量名]in[集合类型表达式]){语句;}说明:([类型]、[循环变量名]用于声明循环变量,在foreach执行期间,循环变量表示当前正在为其执行循环的集合元素;必须有一个从该集合的元素类型到循环变量的类型的显示转换,若其值为null,则会出现异常。应用举例:创建一个控制台应用程序,实例化一个ArrayList数组,向数组中添加值,然后使用foreach语句遍历整个数组,并输出数组中的值。(见代码)2015年2月Foreach语句应用举例usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Collections;namespaceTest09{classProgram{staticvoidMain(string[]args){ArrayListalt=newArrayList(); //实例化ArrayList类

alt.Add("用一生下载你"); //使用Add方法向对象中添加数据

alt.Add("芸烨湘枫"); //使用Add方法向对象中添加数据

alt.Add("一生所爱"); //使用Add方法向对象中添加数据

alt.Add("情茧"); //使用Add方法向对象中添加数据

alt.Add("痞子CAI"); //使用Add方法向对象中添加数据

Console.WriteLine("您收藏的网名有:"); //输出提示

foreach(stringInternetNameinalt) //使用foreach语句输出数据

{Console.WriteLine(InternetName); //输出ArrayList对象中的所有数据

}Console.ReadLine();}}}2015年2月4.3跳转语句4.3.1break语句4.3.2continue语句4.3.3goto语句4.3.4return语句跳转主要用于无条件地转移控制,跳转语句会将控制转到某个位置,即跳转语句的目标。如果跳转语句出现在一个语句块内,跳转目标在语句块之外,即称退出该语句块;否则为跳出循环。2015年2月

break语句只能应用在switch、do、while、for或foreach语句中,否则会出现编译错误。当多条switch、do、while、for或foreach语句互相嵌套时,break语句只应用于最里层的语句。

break语句在switch语句中的应用

创建一个控制台应用程序,声明一个int类型的变量i用于获取当前日期的返回值,然后使用switch语句根据变量i输出当前日期是星期几。(见代码)

break语句在for语句中的应用编写一个程序,判断从键盘输入的大于3的正整数是否为素数。(说明:当变量n能被3~的任何整数整除时,表示n不是素数)(见代码)4.3.1break语句2015年2月break语句在switch语句中的应用usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest10{classProgram{staticvoidMain(string[]args){inti=Convert.ToInt32(DateTime.Today.DayOfWeek); //获取当前日期的数值

switch(i) //调用switch语句

{case1:Console.WriteLine("今天是星期一");break;//如果i是1,则输出今天是星期一

case2:Console.WriteLine("今天是星期二");break;//如果i是2,则输出今天是星期二

case3:Console.WriteLine("今天是星期三");break;//如果i是3,则输出今天是星期三

case4:Console.WriteLine("今天是星期四");break;//如果i是4,则输出今天是星期四

case5:Console.WriteLine("今天是星期五");break;//如果i是5,则输出今天是星期五

case6:Console.WriteLine("今天是星期六");break;//如果i是6,则输出今天是星期六

case7:Console.WriteLine("今天是星期日");break;//如果i是7,则输出今天是星期日

}Console.ReadLine();}}}2015年2月usingSystem;namespaceProj4_9{classProgram{staticvoidMain(string[]args){intn,i; boolprime=true; Console.Write("输入一个大于3的正整数:"); n=int.Parse(Console.ReadLine()); for(i=3;i<=Math.Sqrt(n);i++)if(n%i==0){prime=false;break;} if(prime)Console.WriteLine("{0}是素数",n); elseConsole.WriteLine("{0}不是素数",n);}}}break语句在for语句中的应用2015年2月

continue语句只能用于循环语句中,它类似于break,但它不是结束循环,而是结束循环语句的当前一次循环,接着执行下一次循环。当多个循环语句互相嵌套时,continue语句只能使直接包含它的循环语句开始一次新的循环。应用举例:

编写一个程序,对用户输入的所有正数求和,如果输入的是负数,则忽略该数。程序每读入一个数,判断它的正负,如果为负,则利用continue语句结束当前一次循环,继续下一次循环,否则将该数加到总数上去。(见代码)4.3.2continue语句2015年2月usingSystem;namespaceProj4_10{classProgram{staticvoidMain(string[]args){ intsum=0,n=1; while(n!=0) //循环 {Console.Write("输入一个整数(以0表示结束):");n=int.Parse(Console.ReadLine());if(n<0)continue; //开始下一次循环sum+=n; } Console.WriteLine("所有正数之和={0}",sum);}}}continue语句应用举例2015年2月

goto语句也可以跳出循环和switch语句。goto语句用于无条件转移程序的执行控制,将控制转移到由标签标记的语句。其3种形式如下:

goto

标签;

gotocase参数表达式;

gotodefault

说明:第一种格式的目标是具有给定标签的标记语句,其中,标签是用户自定义的标识符,它可以处于goto语句的前面,也可以处于其后面,但是标签必须与goto语句处于同一个函数中。定义标号时,由一个标识符后面跟一冒号组成;第二种格式的目标是它所在的switch语句中的某个语句列表,此列表包含一个具有给定常数值的case标签;第三种格式的目标是它所在的switch语句中default标签。注意:虽然goto语句有一定的使用价值,但目前存在争议。有人建议不使用,有人建议作为排除错误的基本工具,所以要小心使用。应用举例:创建一个控制台应用程序,使用goto语句实现程序跳转到指定的语句。(见代码)4.3.3goto语句2015年2月goto语句应用举例(1)singSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceTest13{classProgram{staticvoidMain(string[]args){Console.WriteLine("请输入要查找的文字:"); //输出提示信息

stringinputstr=Console.ReadLine(); //获取输入值

string[]mystr=newstring[5]; //创建一个字符串数组

mystr[0]="用一生下载你"; //向数组中添加第一个元素

mystr[1]="芸烨湘枫"; //向数组中添加第二个元素

mystr[2]="一生所爱"; //向数组中添加第三个元素

mystr[3]="情茧"; //向数组中添加第四个元素

mystr[4]="风华绝代"; //向数组中添加第五个元素

2015年2月goto语句应用举例(2)

for(inti=0;i<mystr.Length;i++) //调用for循环语句

{if(mystr[i].Equals(inputstr))//通过if语句判断是否存在输入的字符串{

gotoFound; //调用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论