a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 113|回复: 1

[程序员] 2012年软件水平考试程序员之程序设计知识要点(13)

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
3.6 轮回结构   轮回计较用轮回结构来描述。C说话供给三种描述分歧轮回结构的语句,它们是while语句、do-while语句和for语句。
9 ?) E7 z$ d2 j8 C$ n% e  1.while语句' x) A# G. t# ]2 w0 i" c6 ~
  while语句用来描述while型轮回结构,它的一般形式为
# d9 H7 B0 R- A: \1 J1 a' t) t  while(表达式)
7 d& I- B: k+ R; U0 h  语句
* R, a, o, U( D. q0 I. `  while语句的执行过程是:
3 b( k: Q: M/ A) @% s' f  d  (1)计较while之后的表达式的值;, G- q: ]$ ?* r& s) U
  (2)测试表达式的值,当值为非 0时,转轨范 3;如值为 0,则竣事while语句;
  o, O  C4 h7 S& ?  (3)执行while语句的轮回体,并转轨范1(从而组成轮回)。
+ m- s# ~  N: k  一般来说,为使while语句的执行能正常竣事,如节制轮回的前提表达式包含有变量,轮回体的执行应能更新这些变量的值,使表达式的值会变为0。有时,很难直接写出while后的前提,这时可以简单地写上 1,而在轮回体中含有当某前提知足时,执行如 break语句那样的节制转移语句,使节制特出while轮回,即呈以下结构形式:, v  x2 H/ \( z3 O! M) K4 Q
  while(1){+ t& h, E% n) C& \2 }
  ...
& [- Z- C2 U5 e# e* t3 p  if(表达式)break;
; Z, y$ R$ h2 U+ w( |2 e5 X  ...
9 B0 H! Z6 D! N0 X# j7 N8 n, g! |  }:
5 @/ Z, I- u; k9 K/ ~  2.do-while语句
7 T# }2 a0 |- D/ Z  do-while语句用来描述do-while型轮回结构,它的一般形式为;1 L/ z! b% v* j1 T0 u! V
  do1 K2 @6 J6 x0 x: U
  语句
) s" k7 ?, ^4 c; b2 L' i' h  while(表达式);
! L. F5 W6 e. q5 r  其中的语句是do-while语句的轮回体。do-while语句的执行过程是:' m+ X, [0 p2 U
  (1)执行do-while语句的轮回体;
" T8 _4 c! v, K% F" @" I  (2)求 while之后的表达式的值;. F- q: G9 P* V2 S4 x
  (3)测试表达式的值,当值为非0,转轨范1(从而组成轮回);如值为0,则竣事do-while语句。
4 W6 `) a+ H4 f+ K  V% P8 O$ j$ p- {8 T. M  O
  与while语句一样,当轮回体由多个语句组成时,必需把它们书写成复合语句。有些用while语句描述的轮回计较,也能用do-while语句描述。然而,并非老是如斯。两者的主要区别在于:执行轮回体时,对作为轮回前提的表达式的求值和测试的时刻分歧。while语句对作为轮回前提的表达式求值和测试在执行轮回体之前,而do-While语句对作为轮回前提的表达式求值和测试在执行轮回体之后。对于do-while语句,它的轮回体至少被执行一次,而while语句的轮回体在作为轮回前提的表达式值一路头就为0的情形下,就一次也未被执行。如能保证while语句中的作为轮回前提的表达式在第一次被求值后,总长短0,则把该轮回前提移至轮回体执行之后求值和测试,能起同样的节制浸染。在这种情形下,while语句就能改写成如while语句。如 while语句中的作为轮回前提的表达式值可能初度桥鲎磐为 0时,则它不能简单地改写成do-while语句。此外要出格指出,分号是do-while语句的竣事符,不能省略。
回复

使用道具 举报

 楼主| 发表于 2012-8-2 08:51:16 | 显示全部楼层

2012年软件水平考试程序员之程序设计知识要点(13)

</p>  for语句
. \' S3 K; N  @  for语句是C说话中最矫捷、使用最普遍的轮回结构语句。如以最一般意义下考虑轮回,一个完整的轮回应包含对有关变量赋初值部门、节制轮回的前提、一个要轮回计较的操作、每次轮回后对有关变量的批改等四部门组成。拉语句就是从这一般意义下表达轮回结构的语: b  H1 G4 p0 T  {& V0 C
  句。for语句的一般形式为
' y# O! P: c. L- S! P  for(表达式1;表达式2;表达式3)
. x9 p; Z1 h: P" H8 F% {- V% N  语句8 E$ [4 t" O' c/ X, U3 j
  其中的语句是for语句的轮回体。输语句的执行过程是:
5 j2 h* u! |+ M: a. K  (1)计较表达式1;  o. V. T" o/ P# p, }% J
  (2)计较表达式 2的值,并测试其值为 0或非 0。若值为非 0,转轨范 3;否则竣事 for语句;
5 s8 \! e2 f, k. G; Z  (3)执行轮回体;& U, L" i  W4 t3 L; v/ _- ~
  (4)计较表达式3;
9 k+ x7 M% p% n- G1 [  K* b3 H% t% m; O  (5)转向轨范2。
) X/ W; y9 ]3 q; P( p: U  for语句的一般形式也可等见识用以下形式的while语句来表达:
1 b8 R* c8 W( |) s$ [. C  表达式1;9 I5 q3 A6 v9 t' @0 u8 k9 b
  while(表达式2) {: N  I) b9 E/ Y/ `  C% I
  语句4 F% w5 n2 O$ {9 V. U1 }+ A
  表达式3;
$ h( N" N& ?6 S0 P0 m9 K  }
% d: U/ J/ Q, N  由for语句的执行过程可知,for语句的表达式1的浸染是对节制轮回的有关变量赋初值;表达式2是节制轮回的前提;表达式3用于批改有关变量;语句是轮回体。所以for语句按各部门的功能,可以形象地写成以下形式:
# w1 ^6 L3 @* W& P% S3 w  for(赋初值的表达式;节制轮回前提的表达式;批改变量的表达式)
5 C4 w1 X' f' }% z9 \5 H  完成轮回计较的语句8 m4 J9 s2 p: [3 D" u5 M! q, s, q( C
  正确使用for语句,需注重以下几种情形:
! _# F9 u1 D" {. d+ F+ R* C  (1) for语句的一般形式中,表达式1、表达式2和表达式3都可以省略。如表达式1省略,暗示该for语句没有赋初值部门,或前面的轨范段已为有关变量赋了初值,或确实没有出格的初值;如表达式2省略,暗示轮回前提永远为真,可能轮回体内有节制转移语句转出缺语句;表达式3省略,暗示没有批改部门,对变量的批改已在轮回体内一路完成。不管表达式1、表达式2和表达式3省略情形若何,其中两个分号都不能省略。对于三个表达式都省略情形,for语句呈以下形式:
2 I. G. ^- a# l" `& ?+ g: E  for(;;)/ v) C  G+ z4 d% v7 {
  语句
8 L2 ^2 i" E. p; Z  (2)表达式l、表达式2和表达式3都可包含逗号运算符由多个表达式组成。
, i+ C  `. L* _5 o  4. break语句
% A0 W2 L/ \$ Z3 Y) \' i; z9 e' q  break语句除能用于switch语句外,还常用于轮回语句中。执行轮回结构中的break语句,节制就大北含它的轮回结构中退出。break语句凡是与if语句连系,组成一个竣事轮回的前提。6 Y0 T5 K$ |1 c% d6 p, M/ o6 Q" p
  5.continue语句: u" X7 Z8 E9 m* H# T+ a
  continue语句只用于轮回语句中。凡是复杂的轮回计较中,轮回语句的轮回体是一个语句序列,中心会有一个包含continue语句的且语句。当指定的前提成立时,continue语句就被执行,这时continue语句之后的语句就不再执行,节制当即进入下一轮轮回。9 W- W* E, D) @0 p
  6. 语句标号和goto语句
$ X. _' {9 Y6 E$ i  C轨范的语句之前都可插入标识符和冒号,该标识符即为厥后语句的标号。如, r( j/ S7 o! }& ^$ R6 X" K) h
  strat:X= 0;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-23 06:52 , Processed in 0.271194 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表