⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 第10章 循环语句.htm

📁 用非常通俗的语言介绍了C++和C
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm --><HTML><HEAD><TITLE>教学--第十章 循环语句</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
	MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.节标题 {
	FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
	FONT-SIZE: 9pt
}
.tdtitle {
	FONT-SIZE: 20pt
}
.celltopline {
	BORDER-TOP: #000000 1px solid
}
.menucell {
	FONT-SIZE: 10pt
}
#glowtext {
	FONT-SIZE: 10pt; FILTER: glow(color=red,strength=1); WIDTH: 100%
}
A:link {
	FONT: 10pt 宋体; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
	FONT: 10pt 宋体; COLOR: purple; TEXT-DECORATION: none
}
A:active {
	FONT: 10pt 宋体; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
	COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>

<META content="MSHTML 6.00.2900.2769" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3><!-- 标题 --><!--标题结束 --><A name=页首></A>
<CENTER>
<TABLE height=154 cellSpacing=4 cellPadding=4 width=760 border=0>
  <TBODY>
  <TR>
    <TD 
    style="FONT-SIZE: 10pt; MARGIN-LEFT: 12px; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 12px; FONT-FAMILY: 宋体" 
    width="100%" height=148>
      <H2>第十章 循环语句</H2>
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.1">10.1 
      while 循环</A></P>
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.2">10.2 
      do ... while 循环</A></P>
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.3">10.3 
      for 循环</A></P>
      <P>&nbsp;&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.3.1">10.3.1 
      循环条件三要素</A></P>
      <P>&nbsp;&nbsp; <A 
      href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.3.2">10.3.2 
      三要素在for循环结构上体现</A></P>
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.4">10.4 
      多层循环</A></P>
      <P><A href="http://www.d2school.com/bcyl/bhcpp/newls/ls10.htm#10.5">10.5 
      小结及一点问题</A></P>
      <P> </P>
      <P> </P>
      <P>循环就是反复。 
      <P>生活中,需要反复的事情很多。譬如你我的整个人生,就是一个反复,反复每一天的生活,直到死,幸好,我们每天的生活并不完全一个样。 
      <P>  
      <H3><A name=10.1>10.1</A> while 循环</H3>
      <P>  
      <P>语法形式: 
      <P>  
      <P>while(条件) 
      <P>{ 
      <P>&nbsp; 需要循环执行的语句;&nbsp; 
      <P>} 
      <P> 
      <P>while 是“当”的意思。 
      <P>  
      <P>请首先和if语句作一个比较: 
      <P>  
      <P>if(条件) 
      <P>{ 
      <P>&nbsp; 条件成立时执行的语句; 
      <P>} 
      <P>  
      <P>二者除了关键字不一样以外,结构完全一样。但一定要注意,在条件成立时,if语句仅仅执行一遍,而while语句则将反复执行,直到条件不再成立。 
      <P>请看while循环的流程图: 
      <P>  
      <P><IMG height=353 src="第10章 循环语句.files/ls10.h2.gif" width=357 border=0> 
      <P>程序从“前面的语句”开始执行,然后进行条件判断,如果条件成立,则执行一次“每次循环执行的语句”,再后请特别注意红色部分,这是我们碰上的,第一次会往后走流程:红线就像汽车拐弯,掉头到条件处(并不包括前面的语句),然后再进行下一次的条件判断……直到某一次判断时条件不成立了,程序“继续后面的语句”。 

      <P>  
      <P>  
      <P>我们用while的语法套用生活中的实际例子,可以直观地看出while的用法。 
      <P>假设有一个爱哭的小娃娃,有一天她要求父母给买一条小红裙,可惜父母不同意,于是她就开始一个循环:<BR>&nbsp;&nbsp; 
      <P>while ( 父母不给买小红裙) 
      <P>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我哭;<BR>&nbsp;&nbsp; } 
      <P>  
      <P>这段“代码”的意思是:当“父母不给买小红裙”,那么,小女孩就一遍一遍地哭。 
      <P>这就是我们和循环流程的第一个遭遇战。所举的例子看似直观:“小孩一遍遍地哭,直到父母给买裙”,但真正要用程序的语言来正确地表达出来,需要很多方面要考虑到,必竟,程序是严谨的。 

      <P>首先,<B>一个合适的判断是否继续的条件相当重要。</B>小女孩要继续哭,仅仅“父母不给买小红裙”,这显示不符合事实,想想我们小时候,再会哭,最终也有累的时候,所以,要想继续哭,我们的条件有两个:“父母不给买小红裙”并且“我还没有哭累”。 

      <P>
      <P>while ( 父母不给买小红裙 &amp;&amp; 我还没有哭累) 
      <P>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我哭;<BR>&nbsp;&nbsp; } 
      <P>  
      <P>其次,大多数情况下,<B>条件需要被恰当地改变。</B>小女孩在不停地哭,那么她如何知道父母是否买了红裙呢?所以,她不能只顾哭,还得在哭的间隙观察大人是否同意买裙。至于是否哭累,我们假设小女孩有一个疲劳度,每哭一次疲劳度加1,当疲劳度到达200时,可怜的小女孩累了…… 

      <P>  
      <P>while(父母不给买小红裙 &amp;&amp; 疲劳度 &lt; 200) 
      <P>{ 
      <P>&nbsp; 我哭; 
      <P>&nbsp; 我偷看爸妈是否同意买裙; 
      <P>&nbsp; 疲劳度++; 
      <P>} 
      <P>  
      <P><B>例一: 用 while 语句实现求从1到100的累加和。</B> 
      <P>  
      <P>求1+2的和,我们可以写 a = 1 + 2;求1加到100,我们当然可以这样写 a = 1 + 2 + 3 + ... 
      100.不过这样写显然太累人了,要从1写到100啊!所以聪明如高斯的你,当然也知道这样写:a = (1+100) * 
      50;这确实是个在任何时候都值得称赞的,又快又简的方法,只是今天我们想让计算机累一点,老老实实地从1加到100。首先用我们先学的while式的循环。 

      <P>  
      <P>请同学们打开CB,然后新建一空白的控制台程序,在main()函数体加入下面黑体部分代码。然后按F9运行。查看运行结果以加深印象。 
      <P> 
      <P>//--------------------------------------------------------------------------- 

      <P><B>#include &lt;iostream.h&gt;</B> 
      <P>#pragma hdrstop 
      <P>//--------------------------------------------------------------------------- 

      <P>#pragma argsused 
      <P>int main(int argc, char* argv[]) 
      <P>{ 
      <P><B>int sum = 0; //变量sum将用于存储累加和,将它初始化为0,这很重要。</B> 
      <P><B>int i = 1; //i是每次要加的数,它从1开始。</B> 
      <P>  
      <P><B>while ( i&lt;= 100)</B> 
      <P><B>{</B> 
      <P><B>&nbsp;&nbsp; sum += i;</B> 
      <P><B>&nbsp;&nbsp; i++;</B> 
      <P><B>}</B> 
      <P>  
      <P><B>//输出累加结果:</B> 
      <P><B>cout &lt;&lt; "1到100的累加和为:" &lt;&lt; sum &lt;&lt; endl;</B> 
      <P><B>getchar();</B> 
      <P>}  
      <P>sum 
      初始为0,然后在每一遍的循环里,它都加上i,而,i则每次都在被加后,增加1。最终,i递增到101,超过100了,这个循环也就完成了任务。 
      <P>  
      <P>运行上面程序,输出结果为: 
      <P>  
      <P><FONT color=#ffffff><SPAN 
      style="BACKGROUND-COLOR: #000000">1到100累加和为为:5050</SPAN></FONT> 
      <P>  
      <P><B>例二:用while循环实现简单的统计功能</B> 
      <P>  
      <P>统计功能在各行业里都经常用到,比如学校学生成绩总分的统计,商店中每日销售额的统计等。下面我们实现一个学生成绩的统计。 
      <P>由于成绩中包含有80.5这样的需要小数的部分,所以我们使用实数类型。 
      <P>  
      <P>保存,然后关闭上面的工程,然后再新建一个控制台工程。在主函数main内加入以下黑体部分的代码: 
      <P>  
      <P>//--------------------------------------------------------------------------- 

      <P><B>#include &lt;iostream.h&gt;</B> 
      <P>#pragma hdrstop 
      <P>//--------------------------------------------------------------------------- 

      <P>#pragma argsused 
      <P>int main(int argc, char* argv[]) 
      <P>{ 
      <P><B>&nbsp;&nbsp; float sum,score;</B> 
      <P><B>&nbsp;&nbsp; int num; //num 用于存储有几个成绩需要统计。</B> 
      <P><B>&nbsp;&nbsp; int i;&nbsp;&nbsp; //i 用于计数</B> 
      <P>  
      <P><B>&nbsp;&nbsp; //初始化:</B> 
      <P><B>&nbsp;&nbsp; sum = 0;&nbsp;</B> 
      <P><B>&nbsp;&nbsp; i = 1;</B> 
      <P>  
      <P><B>&nbsp;&nbsp; cout &lt;&lt; "====成绩统计程序====" &lt;&lt; endl;<BR></B>
      <P><B>&nbsp;&nbsp; //用户需事先输入成绩总数:</B> 
      <P><B>&nbsp;&nbsp; cout &lt;&lt; "请输入待统计的成绩个数:";</B> 
      <P><B>&nbsp;&nbsp; cin &gt;&gt; num;</B> 
      <P><B>&nbsp;&nbsp; cout &lt;&lt; "总共需要输入"&lt;&lt; num &lt;&lt; 
      "个成绩(每个成绩后请加回车键):" &lt;&lt; endl;</B> 
      <P>  
      <P><B>&nbsp;&nbsp; while ( i &lt;= num)</B> 
      <P><B>&nbsp;&nbsp; {</B> 
      <P><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "请输入第" &lt;&lt; i 
      &lt;&lt; "个成绩:";</B> 
      <P><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin &gt;&gt; 
      score;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += 
      score;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      i++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //输出统计结果:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "参加统计的成绩数目:" 
      &lt;&lt; num &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout 
      &lt;&lt; "总分为:" &lt;&lt; sum &lt;&lt; 
      endl;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getchar();</B> 
      <P>} 
      <P>//---------------------------------------------------------------------------<BR>  

      <P>以下是运行结果,我输入4个成绩参加统计: 
      <P><IMG height=176 src="第10章 循环语句.files/ls10.h1.gif" width=432 border=0> 
      <P>回车结束上面的程序。稍作休息。 
      <P>  
      <P>为了更直观地了解循环流程,现在我们来跟踪这段程序中的while循环。 
      <P>1、首先在循环开始处设置断点(F5 功能): 
      <P><IMG height=72 src="第10章 循环语句.files/ls10.h3.gif" width=401 border=0> 
      <P>  
      <P>2、按F9运行程序,在DOS窗口提示“请输入待统计的成绩个数:”时,输入4,并回车。 
      <P>  
      <P>3、程序将在一瞬间运行到第一步设置的断点所在行。即 while(...)这一行。 
      <P>&nbsp;&nbsp; 此时请鼠标挪到 i 上,稍等片刻,出现提示 “i=1",同样的方法可以观察num的值。 
      <P><IMG height=71 src="第10章 循环语句.files/ls10.h4.gif" width=402 border=0> 
      <P>  
      <P>可见第一遍循环时,i = 1,num = 4,条件:i &lt;= num 显然成立,循环得以继续。 
      <P>  
      <P>4、按F8,程序往下运行一行,接着再按F8,程序要求输入一个成绩,请切换到DOS窗口,随便输入一个数,并回车。 
      <P>回车后,程序运行到下图中蓝底的一行: 
      <P><IMG height=130 src="第10章 循环语句.files/ls10.h7.gif" width=399 border=0> 
      <P>5、之后,连续按F8,你将发现程序“回头”运行到 while(...)这一行。此时,i=2, i &lt;= num 
      条件仍然成立,如果您想再跟踪一遍循环,请继续按F8,如果想结束跟踪,在断点行上再按一次F5以取消断点,然后按F9,程序恢复全速运行。 
      <P><IMG height=124 src="第10章 循环语句.files/ls10.h6.gif" width=395 border=0> 
      <P>(程序往回走,回到while行) 
      <P>  
      <H3><A name=10.2>10.2</A> do ... while 循环</H3>
      <P>  
      <P>语法形式: 
      <P>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -