第四章 C++的流程控制语句

程序的3种基本结构:顺序、选择、循环(当型、直到型)

 

If语句3种形式

1.if (表达式) 语句

2.if (表达式) 语句1

   else 语句2

3.if(表达式1)语句1

   else if(表达式2) 语句2

   ……

   else if(表达式n) 语句n

   else 语句n+1

 

注意:

1.if后可跟复合语句

2.注意;的位置

3注意多重if else的搭配

 

条件运算符,是C++中的唯一三目运算符:表达式1?表达式2:表达式3

max=a>b?a:b;

注意:

1.条件运算符的优先级比赋值运算符高

2.结合方向自左至右

3.三个表达式的类型可以不同

 

switch语句:多分支选择语句

switch(表达式)

{

case 常量表达式1: 语句1

case 常量表达式2: 语句2

……

case 常量表达式n: 语句n

default: 语句n+1

}

流程:

先计算表达式的值,然后顺序地与case子句中所列出的各个常量进行比较,

若表达式的值与常量中的值相等,就开始进入相应的case一句执行程序,遇到case和default也不再进行判断,直至switch局域结束。

如果要使其在执行完相应的语句后中止执行下一语句,可以在语句后加break。

 

注意:

1.switch与if不同,它仅能判断一种逻辑关系,即表达式是否等于指定的常量,而if可以计算并判断各种表达式

2.case子句后必须为常量,常常是整型和字符型

3.default可以省略。这时不满足条件什么也不执行

4.case和default只起标号的作用,顺序可以颠倒,颠倒时注意后面的break语句

5.多个case语句可以共用一组程序

case ‘A’:

case ‘B’:

case ‘C’: cout<<“pass!\n”;

 

while语句:

while(表达式)

{语句组1}

{语句组2}

 

注意:

1.当循环语句超过一条时,要用{}将语句组合在一起。

2.循环体内或表达式中必须有使循环结束的条件,即一定有一个循环变量。

3.while表达式可以成为语句,要特别小心。

 

例题:

以下语句,循环退出时x为多少?

x=10;while(x!=0) x—; x=0

x=10;while(x) x—; x=0

x=10;while(x—) ; x=-1

x=10;while(—x) ; x=0

 

do—while语句

do

{语句组1}

while(表达式);

{语句组2}

 

注意:

do—while首先执行循环体,然后再判断表达式,至少执行一次循环体

当第一次循环表达式的值为真时,while与do—while的结果完全一样,否则结果不相同。

 

for语句:(循环变量赋初值;循环结束条件;循环变量增值)

for(表达式1;表达式2;表达式3)

{语句组1(循环体)}

{语句组2}

 

注意:

1.当型循环,条件测试是在循环开始时进行,有可能也进入不了循环体。

2.for语句中的三个表达式可以部分省略或全部省略,但;不能省略,若省略表达式2,则表示循环条件为真。

3.for语句中三个表达式可以使任何有效的C语言表达式

 

循环的嵌套:一个循环体内又包含另一个完整的循环体

注意:

1.循环体内有多个语句要用{}括起来。

2.书写格式要清晰。

 

最大公约数:能同时被m和n整除的最大数

最小公倍数:两数之积除以最大公约数

 

欧几里得算法(m>n)

1.m被n除得到余数r(0<=r<=n) r=m%n

2.若r=0,则算法结束,n为最大公约数,

3.否则m<-n,n<-r,继续1

 

最大公约数:

r=m>n?n:m

for(i=1;i<r;i++)

if(m%i==0&&n%i==0)

a=i;

cout<<a;

 

打印每位数:先%再/

while(n)

{

cout<<n%10<<‘\t’;

n=n/10;

}

 

fabs是求绝对值的函数,fabs(i)<1e-5,表示i的绝对值小于10^-5,通常用于条件判断语句中,进行精度控制。

1表示尾数,e表示阶码标志,-5表示阶码

 

break语句和continue语句:

 

break在switch语句中,可以使流程跳过判断体,执行下面的程序,

在循环体中,也可以从循环体内跳出循环体,提前结束循环,

break只能退出一层循环或switch语句。

 

continue的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环。


版权声明:本文为m0_56609445原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。