第3章--循环结构ppt课件.ppt
第三章 循环结构回顾回顾v条件表达式的结果是什么类型的值?vswitch语句只能判断哪几种类型的值?v代码找错:switch(str)case “A”:Console.WriteLine(); default: Console.WriteLine(); break;switch(str) case “A”:Console.WriteLine(); break; default:Console.WriteLine(); break;本章内容本章内容vwhile语句vdo.while语句vfor语句本章学习目标本章学习目标v熟练使用while语句v熟练使用dowhile语句v熟练使用for语句循环循环v为什么要用到循环?上面的代码输出乘法口诀表,是否我们在每次遇到这样的上面的代码输出乘法口诀表,是否我们在每次遇到这样的情况就把类似的代码重新编写一遍,反复执行情况就把类似的代码重新编写一遍,反复执行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&answer!=y); /判断是否应该继续循环判断是否应该继续循环Console.WriteLine(猪八戒终于挺不住殴打,吐露了师傅的下猪八戒终于挺不住殴打,吐露了师傅的下落落!);dowhile循环里的代码必须循环里的代码必须先执行先执行1次,再进行判断次,再进行判断DOWHILE循环循环do 代码块代码块; while(条件表达式条件表达式);反复执行的代码反复执行的代码判断是否继续执判断是否继续执行循环的条件行循环的条件 先执行1次代码块,然后判断条件表达式结果,如果条件表达式的结果为true,继续执行while循环里的代码块;如果为false,循环结束dowhile循环循环WHILE和和DOWHILE区别区别循环循环循环控制循环控制循环次数循环次数0多次 先判断,后执行循环代码while1多次先执行1次循环代码,后判定dowhileYear小结小结v while和dowhile的条件表达式的值是什么类型?v 以下代码正确与否?如果正确,下面代码循环几次,变量sum的值是多少?int sum=0,i=1;while(i5) sum=sum+i; 循环循环4次次sum=10boolFOR循环循环西游记西游记中唐僧师徒要经历九九八十一难才能取得真经,中唐僧师徒要经历九九八十一难才能取得真经,少一难佛祖也要给他们加上,我们用循环来实现这八十一难少一难佛祖也要给他们加上,我们用循环来实现这八十一难。 循环要从第一难开始,每经历(循环)一难就要输出一次提示,一直循环到第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就会在警告后自动退出程序,这种在循环的过就会在警告后自动退出程序,这种在循环的过程中根据其他条件中止循环的情况用什么来完成呢?程中根据其他条件中止循环的情况用什么来完成呢?BREAKint count = 0; /定义变量保存登录次数,初始化为定义变量保存登录次数,初始化为0while (name != admin | password != 123) count+; /每循环每循环1次,登录次数加次,登录次数加1 if (count = 3) /如果登录次数为如果登录次数为3次,中止循环次,中止循环 break; 强制退出循环强制退出循环CONTINUE 每星期7天,循环7次,每次循环输出游戏运行,如果1代表星期一的话,循环到3的时候在循环中输出通知而不输出游戏运行。某网络游戏运营商每星期的星期三进行服务器的维护,在星某网络游戏运营商每星期的星期三进行服务器的维护,在星期三要发布通知并暂时停止运行游戏,其余时间正常运行。期三要发布通知并暂时停止运行游戏,其余时间正常运行。这个例子特殊的地方是,每天循环运行游戏,但是到星期三这个例子特殊的地方是,每天循环运行游戏,但是到星期三(条件条件),循环执行的是通知而停止游戏,星期三之后循环继,循环执行的是通知而停止游戏,星期三之后循环继续运行游戏,并没有停止续运行游戏,并没有停止.CONTINUEfor (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中止循环,直接影响到循环次数 breakcontinue停止本次循环,继续循环,不影响循环次数 continue小结小结vfor循环的三个表达式的作用。v下面的代码输出什么?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(“循环结束。”);变量进行变量进行递加递加总结总结vwhile和dowhile的区别是什么?vfor循环的三个表达式的作用?vbreak和continue的区别是什么?v在循环中我们应该尽量避免_。v下面代码的输出结果是for(int i=0;i5;i=i+2) Console.WriteLine(“0”,i);024死循环死循环