还剩5页未读,继续阅读
文本内容:
程序基本结构C51顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照C解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行.循环结构之循环1while例小明在英语测验的时候,”这个单词写错了,小明为了记住该单词,下狠心耍抄computer写遍,然后小明苦兮兮的抄写了遍这里我们就可以说小明在循环抄写那我们将这1010种反复不停的执行某个动作称之谓循环,语言中有三种循环结构,先看一下语言循C Cwhile环的结构(表达式)while执行代码其中表达式表示循环条件,执行代码块为循环体语句的语义是计算表达式的值,当while值为真(非)时,执行循环体代码块其执行过程可用下图表示0执行代码块小明现在想偷懒了,不想手抄了,他用代码实现如下:;〃抄写次数int i=e whilei10;i++第%遍书写printf d computerXn,i;使用语句应注意以下几点while、语句中的表达式一般是关系表达或逻辑表达式,当表达式的值为假时不执行循环体,反1while之则循环体一直执行、一定要记着在循环体中改变循环变量的值,否则会出现死循环(无休止的执行)
2、循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句
3.循环结构之循环2do-while小明英语测验,〃〃这个单词再一次写错了,小明又决定抄遍,但是小明想〃我写computer10一遍就能记住了,剩下的交给计算机帮我完成!〃对于小明这个想法,就可以用到语言中的循环,一般形式如下C do-whiledo执行代码(表达式);〃这里有分号while循环语句的语义是它先执行循环中的执行代码块,然后再判断中表达式是否do-while while为真,如果为真则继续循环;如果为假,则终止循环因此,循环至少要执行一次循do-while环语句其执行过程可用下图表示执行代码块根据语句的特点,小明的代码实现如下:do-while〃抄写次数int i«0;do;i++第%遍书写:,printf d computern i;}whilei10;注意使用结构语句时,括号后必须有分号do-while while.循环结构之循环
(一)3for在语言中还有一种更加灵活的循环,它完全可以秒杀前面两种循环结构,因为它相对前两种C循环结构语法更直接、简单它的一般形式为(表达式表达式表达式)for1;2;3;执行代码它的执行过程如下第一步执行表达式对循环变量做初始化;1,第二步判断表达式若其值为真(非)则执行循环体中执行代码块,然后向下2,0,for执行;若其值为假()则结束循环;0,第三步执行表达式;3第四步执行循环中执行代码块后执行第二步;for第五步循环结束,程序继续向下执行其执行过程可用下图表示例小明下决心抄遍这个单词,用循环实现如下:10computer for〃抄写次数int i;fori=l;i=10;i++第遍书写:printf%d computer\n\i;注意循环中的分号一定要写for.循环结构之循环
(二)4for在循环中,表达式是一个或多个赋值语句,它用来控制变量的初始值;表达式是一个for12关系表达式,它决定什么时候退出循环;表达式是循环变量的步进值,定义控制循环变量每3循环一次后按什么方式变化这三部分之间用分号(;)分开使用语句应该注意for、循环中的〃表达式、、〃均可可以缺省,但分号(;)不能缺省1for
123、省略〃表达式(循环变量赋初值)〃,表示不对循环变量赋初始值如21〃定义循环变量,并赋值int i=1;()〃省略循环变量赋初始值for;i=10;i++(第遍书写:)printf%dcomputer\n\i;、省略〃表达式(循环条件)—不做其它处理,循环一直执行(死循环)如:32int i;〃省略循环条件for i«0;;i++第遍书写:printf%d computerXn,i;、省略〃表达式(循环变量增量几不做其他处理,循环一直执行(死循环)如:43int i;〃省略循环变量的步进值for i0;i«10;第第书写:printf%dcomputer\n\i;注死循环可以使用后面即将讲到的解决break
5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式如:intsum,num;num=0;〃循环变量初始表达式可以换成其他表达式forsum=0;num=10;num++sum+=num;、表达式和表达式可以是一个简单表达式也可以是多个表达式以逗号分割如:613int sum-num;〃循环变量初始表达式可以换成其他表达式forsum=0,num=0;num=3;num++,sum i{I sum+=num;printfnum=%d,sum=%d\nM,num,sum;运行结果为num=O,sum=Onum=l,sum=2num=2,sum=5num=3,sum=
9、表达式一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值72非零,就执行循环体int sum.num;〃循环变量初始表达式可以换成其他表达式forsum=0,num=0;num=3sum=51;num i,sum++!sum+=num;;printfnum=Xd,sum=%d\nM,num,sum;、各表达式中的变量一定要在循环之前定义如:8for〃各卡达式中的变翼一定在循前定义for1forint sum=0,int num=0;num=3sum=51;num++,sum i{7^这样是错误的,一定在之前定义for三口」‘」—八sum+=num;wryiu idyraprintfMnun»%d sua«Xd\n,num,sum;.循环结构之三种循环比较5和三种循环在具体的使用场合上是有区别的,如下:while do-while for、在知道循环次数的情况下更适合使用循环;1for、在不知道循环次数的情况下适合使用或者循环,如果有可能一次都不循环应2while do-while考虑使用循环,如果至少循环一次应考虑使用循环while do-while但是从本质上讲,和循环之间是可以相互转换的,如小明被老师罚抄while,do-while for10次这个单词,分别用三种语法写computerint i«0;int i«0;whilei10do inti;fori«l;i-10;i-H-第配遍写,printf\n i;第配遍写第遍写,printf“i;}while i10;printfC•Xd“i;三种循环结构输出的结果是完全一样的,因此,多练习不同的循环有利于提高自己的程序水C平,加油!.编程重在动手,大家可以尝试编译运行一下,才能感受到编程的乐趣6#include iostreamusingnamespace std;int mainintdate=0;//Date tobe determindcharanswer;//Prompt theuser forSet1cout«Is yourbirth datein thisset«endl;cout«H16171819\n«20212223\n«24252627\n«28293031«endl;cout«Enter Nfor Noand Yfor Yes:cin»answer;if answer==Ydate+=16;//Prompt theuser forSet2cout«Is yourbirth datein thisset«endl;cout«8910ll\n«12131415\n«24252627\n«n28293031«endl;cout«Enter Nfor Noand Yfor Yes:cin»answer;if answer==Ydate+=8;//Prompt theuser forSet3cout«Is yourbirth datein thisset”«endl;cout«1357\nH«9111315\n«17192123\n«25272931«endl;cout«Enter Nfor Noand Yfor Yes:cin»answer;if answer==,Y date+=1;//Prompt theuser forSet4cout«Is yourbirth datein thisset«endl;cout«2367\n«10111415\n«18192223\n«n26273031«endl;cout«Enter Nfor Noand Yfor Yes:cin»answer;if answer==Y date+=2;//Prompt theuser forSet5cout«Is yourbirth datein thisset«endl;cout«4567\n«n12131415\n«20212223\n«28293031«endl;cout«Enter Nfor Noand Yfor Yes:cin»answer;if answer==Ydate+=4;cout«Your birth date is«date«endl;return0;■C:\Uierj\2aO32\£ocuments\C«ntSftig\l.exe未今冬1Hm»n.cppEnterNforNoandYforYes、Isyourbirthdateinthisset1#includeiostreani8910112usingnamespacestd;121314152425262728293031int nainEnterNforXoand¥forYes Nirh-r-h5早6car---n-|r-7intdate=0;//Datetobedetermindcharanswer;1357891113159171921232527293110//PrompttheuserforSet1EnterNforNoandIs11yourhirthdatecoutIs yourbirth idatein thisset«1267cout-16171819\n«10111415,20212223\nw««endl;18192223,24252627\n•and Yfor Yes:2627303114-28293031-Enxcr NforXoandYforYes:YinIsyourbirthdat声thisspt15cout«Enter45126716cinanswer;131415172021222318ifanswer==Y28293031Error NforNoand19date♦=16;Yourbirthdateis2021//PrompttheuserforSet222coutIs yourbirthdatein thissetcout Processexitedafter
11.65secondsixhreturnvalue023S910ll\n«2412131415\n«I译日力(运行项目,保存格式,运行后回答问题,为是,为否,五次即可猜出生日份)C++epp YN。
个人认证
优秀文档
获得点赞 0