资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,山东商业职业技术学院,*,Click to edit Master title style,第三章 循环结构,回顾,条件表达式的结果是什么类型的值?,switch,语句只能判断哪几种类型的值?,代码找错:,switch(str),case“A”:,Console.WriteLine();,default:,Console.WriteLine();,break;,switch(str),case“A”:,Console.WriteLine();,break;,default:,Console.WriteLine();,break;,本章内容,while,语句,do.while,语句,for,语句,本章学习目标,熟练使用,while,语句,熟练使用,dowhile,语句,熟练使用,for,语句,循环,为什么要用到循环?,上面的代码输出乘法口诀表,是否我们在每次遇到这样的,情况就把类似的代码重新编写一遍,反复执行,100,次就要,重复编写,100,次呢?相信这样的开发对编程人员就是一种,折磨。那么怎样解决这个问题呢,这就要靠循环来完成。,Console.WriteLine(1*1=1,);,Console.WriteLine(2*1=2 2*2=4,);,Console.WriteLine(3*1=3 3*2=6 3*3=9,);,Console.WriteLine(4*1=4 4*2=8 4*3=12 4*4=16,);,while,循环,大部分人都使用过,QQ,,在,QQ,上登录时,如果没有输入正确的帐号和密码,就会一直给用户提示直到帐号和密码都正确为止,分析,这个例子里面先接收用户的帐号和密码,然后判断是否正确,如果正确,登录成功;如果不正确,就要,重复,接收用户的帐号和密码并再次判断,直到正确为止。,提问,while,循环,示例,Console.Write(,我的QQ);,Console.Write(,登录帐号,:);,string name=Console.ReadLine();,/,接收登录帐号,Console.Write(,登录密码,:);,string password=Console.ReadLine();,/,接收登录密码,/,循环判断登录帐号和密码是否都正确,有一个不正确就继续输入,while(name!=admin|password!=123),Console.WriteLine(,登录帐号或密码不正确,请重新输入!,);,Console.Write(,登录帐号,:);,name=Console.ReadLine();,/,再次接收登录帐号,Console.Write(,登录密码,:);,password=Console.ReadLine();,/,再次接收登录密码,Console.WriteLine(,欢迎登录我的,QQ,。,);,while,循环,重复执行判断登录帐号和密码的正确,然后在不正确的情况下重新输入,while,循环,语法,while(,条件表达式,),代码块,;,反复执行的代码,判断是否执行循环的条件,如果条件表达式的结果为,true,,执行,while,循环里的代码块;如果为,false,循环结束,While,循环,dowhile,循环,猪八戒被牛魔王的手下抓住,先被殴打一顿,然后被逼问唐僧的下落,猪八戒只要回答”不知道”就要被殴打,直到回答”知道”才停止。怎样用循环来完成?,分析,猪八戒被殴打和询问是反复执行的功能,条件是猪八戒是否知道唐僧下落。但是这里要求不管猪八戒怎样回答都要先被打一次,提问,dowhile,循环,示例,string answer;,/,定义变量准备保存回答内容,do,/,输出提示和询问,Console.WriteLine(,猪八戒被殴打中。,);,Console.Write(,是否知道唐僧的下落?,(Y/N);,answer=Console.ReadLine();,/,接收回答内容,while(answer!=Y,/,判断是否应该继续循环,Console.WriteLine(,猪八戒终于挺不住殴打,吐露了师傅的下落,!);,dowhile,循环里的代码必须先执行,1,次,再进行判断,dowhile,循环,语法,do,代码块,;,while(,条件表达式,);,反复执行的代码,判断是否继续执行循环的条件,先执行,1,次代码块,然后判断条件表达式结果,如果条件表达式的结果为,true,,继续执行,while,循环里的代码块;如果为,false,循环结束,dowhile,循环,while,和,dowhile,区别,循环,循环控制,循环次数,0,多次,先判断,后执行循环代码,while,1,多次,先执行,1,次循环代码,后判定,dowhile,Year,小结,while,和,dowhile,的条件表达式的值是什么类型?,以下代码正确与否?如果正确,下面代码循环几次,变量,sum,的值是多少?,int sum=0,i=1;,while(i5),sum=sum+i;,i+;,循环,4,次,sum=10,bool,for,循环,西游记,中唐僧师徒要经历九九八十一难才能取得真经,少一难佛祖也要给他们加上,我们用循环来实现这八十一难。,分析,循环要从第一难开始,每经历,(,循环,),一难就要输出一次提示,一直循环到第,81,难结束,取得真经。,提问,for,循环,示例,/,初始化循环的起点,,num,代表第几难,/,循环输出第几难,如果到了,81,难,就结束循环,for(int num=1;num=81;num+),Console.WriteLine(,这是第,0,难,num);,/,输出第几难,Console.WriteLine(,经历完九九八十一难,唐僧师徒终于取到了真经。,);,for,循环有起点,有明确的循环次数,for,循环,语法,for(,表达式,1;,表达式,2;,表达式,3),代码块,;,条件表达式,判断循环是否继续执行,首先执行表达式,1,,再执行表达式,2,,判断是否符合循环条件,判断结果如果为,false,结束循环;如果为,true,执行代码块,然后执行表达式,3,,再然后执行表达式,2,继续判断,重复上面的操作直到判断结果为,false,结束。,赋值语句,控制循环变量的运算,循环执行的代码,for,循环,赋值语句,表示循环的起点,break,先接收用户的帐号和密码,然后判断是否正确,如果正确,登录成功;如果不正确,就要重复判断是否是第三次循环,如果是,警告并结束循环,否则接收用户的帐号和密码并再次判断帐号和密码是否正确,直到正确为止。,提问,我们修改一下本章的第一个示例,,QQ,登录,如果连续输入错误,3,次,,QQ,就会在警告后自动退出程序,这种在循环的过程中根据其他条件中止循环的情况用什么来完成呢?,分析,break,示例,int count=0;,/,定义变量保存登录次数,初始化为,0,while(name!=admin|password!=123),count+;,/,每循环,1,次,登录次数加,1,if(count=3),/,如果登录次数为,3,次,中止循环,break;,强制退出循环,continue,每星期,7,天,循环,7,次,每次循环输出游戏运行,如果,1,代表星期一的话,循环到,3,的时候在循环中输出通知而不输出游戏运行,。,提问,某网络游戏运营商每星期的星期三进行服务器的维护,在星期三要发布通知并暂时停止运行游戏,其余时间正常运行。这个例子特殊的地方是,每天循环运行游戏,但是到星期三,(,条件,),,循环执行的是通知而停止游戏,星期三之后循环继续运行游戏,并没有停止,.,分析,continue,示例,for(int i=1;i=7;i+),/,循环,7,次,代表,7,天,,1,代表星期一,if(i=3),/,判断是否星期三,/,通知服务器维护,停止运行游戏,Console.WriteLine(,星期,3,,服务器维护,暂时不能登录!,);,continue;,Console.WriteLine(,星期,0,,游戏正常进行,i);,结束本次循环,继续执行,for,循环的表达式,3(i+),break,和,continue,的区别,关键字,不同点,break,中止循环,直接影响到循环次数,break,continue,停止本次循环,继续循环,不影响循环次数,continue,小结,for,循环的三个表达式的作用。,下面的代码输出什么?,int sum=1;,for(int i=0;i5;i+),sum=sum*i;,Console.WriteLine(“sum=0”,sum);,sum=0,常见错误,-,死循环,int i=1;,while(i10),Console.WriteLine(,这是第,0,次循环,!,i);,条件表达式永远为,true,常见错误,-,死循环,int i=1;,while(i10),Console.WriteLine(,这是第,0,次循环,!,i);,i+;,Console.WriteLine(“,循环结束。,”);,变量进行递加,总结,while,和,dowhile,的区别是什么?,for,循环的三个表达式的作用?,break,和,continue,的区别是什么?,在循环中我们应该尽量避免,_,。,下面代码的输出结果是,for(int i=0;i5;i=i+2),Console.WriteLine(“0”,i);,0,2,4,死循环,Thank You!,
展开阅读全文