[C++]C++的流程控制语句

本文详细介绍了C++中的流程控制语句,包括顺序、选择和循环结构。重点讲解了if语句的三种形式,强调了复合语句、else配对及条件运算符的使用。还探讨了switch语句的多分支选择,并提供了示例代码,帮助理解其工作原理和注意事项。
摘要由CSDN通过智能技术生成

C++的流程控制语句

程序的三种基本结构

1、顺序

 

2、选择

 

3、循环

 


if语句

判断选择语句,有三种形式:

1if(表达式)    语句

if (a>b)

     cout<<a;

 

2)if(表达式)   语句1

     else      语句2  

if (a>b)

     cout<<a;

else

     cout<<b;

 

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

else if (表达式2)     语句2

      ......

      else  if (表达式n)    语句n

      else      语句n+1  

 

注意:1)  if 后可跟复合语句。

      2)  注意  ;的位置。

      3)  注意多重 if   else  的搭配。

if  (a>b)

{   a=1;

    b=0;

}

else

{  a=0;

   b=1;

}

 

if (i >j)  i++;

 

if (i>j);   i++;

 

if  总是与它上面最近的 else 配对,如要改变,用复合语句{ }。

注意书写格式,相互配对的语句要对齐。

例:输入两个实数,按代数值由小到大次序输出这两个数。

void main( void )

{  

float a,b,t;   //定义变量

cout<<“ Input  2  Real Number:\n";//在屏幕上的提示信息   

    cin>>a>>b;     //给变量赋值   a:7, b:3

    if(a>b)

       {    t=a; a=b;   b=t;   }//交换数据,用中间变量

     cout<<a<<‘\t’<<b<<endl;//输出变量

}

 

输出结果:

3            7

嵌套的条件语句(举例说明)

x=100;  a=10;  b=20;  ok1=5;   ok2=0;

if(a<b)

     if(b!=15)

            if(!ok1)   x=1;

                 else  if  (ok2)   x=10;  x=-1;   

x=-1

条件运算符

是C++中的唯一的三目运算符。

 

表达式1?表达式2 :表达式3

max=a>b?a:b ;    // 求a, b中的大者

当 a=2   b=1   a>b为真,表达式的值等于a, max值为2

当 a=1   b=2   a>b为假,表达式的值等于b, max值为2

注意:

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

      x=(x=3) ? x+2 : x-3

2.  结合方向自左至右     a>b?a:c>d?c:d

3.  三个表达式的类型可不同     z=a>b?'A':a+b

x=9, y=6,  z=5;

x=((x+y)%z>=x%z+y%z)?1:0;

cout<<"x= "<<x<<endl;

x=0

x=1;  y=2; z=3;                    y=y+z=5

x+=y+=z;                          x=x+5=6

cout<<( z+=x>y?x++:y++)<<endl;

9

void   main(void )

{   int  x=1,y=2,z=3;

    x+=y+=z;

    cout<<x<y?y:x<<endl;

   cout<<x<y?x++:y++<<endl;

   cout<<x<<“,”<<y<<endl;

   cout<<z+=x>y?x++:y++<<endl;

   cout<<y<<“,”<<z<<endl;

   x=3;  y=z=4;

   cout<<(z>=y&&y= =x)?1:0<<endl;

   cout<<z>=y&&y>=x<<endl;

}

 

执行以下程序段后,变量a,b,c的值分别是:

int   x=10,  y=9;

int   a,b,c;

a=(--x= =y++)?--x:++y;                            x=8    y=10     a=8

b=x++;                                        b=8   x=9

c=y;                                          c=10

 

void  main(void )

{   int  a=5,b=1,c=0;

     if(a=b+c)   cout<<“* * *\n”;

    else   cout<<“$ $ $\n”;

}

* * *

 

switch语句

多分支选择语句。if语句只有两个分支,而实际问题中常常需要用到多分支的选择。如,成绩分为A(100~85)、B(84~70)、C(69~60)、D(60以下)等。

 

cin.get(grade);

if(grade= =‘A’)

    cout<<“100~85\n”;

else   if   (grade= =‘B’)

             cout<<“84~70\n”;

         else   if   (grade= =‘C’)

                      cout<<“69~60\n”;

                  else   if   (grade= =‘D’)

                                 cout<<“no  pass\n”;

                           else    

                                   cout<<“error\n”;  

switch(表达式)

{ case  常量表达式1:语句1

   case  常量表达式2:语句2

      … …

   case 常量表达式n:语句n

   default:语句n+1

switch(grade)                                     如果grade为 ‘A’,则结果为

{       case  ‘A’:cout<<“100~85\n”;           100~85

         case  ‘B’:cout<<“84~70\n”;            84~70

         case  ‘C’:cout<<“69~60\n”;            69~60

         case  ‘D’:cout<<“no pass\n”;           no pass

         default:cout<<“error\n”;                 error

其流程为:先计算表达式的值,然后顺序地与case子句中所列出的各个常量进行比较,若表达式的值与常量中的值相等,就开始进入相应的case语句执行程序,遇到case和default也不再进行判断,直至switch语句结束。如果要使其在执行完相应的语句后中止执行下一语句,可以在语句后加break。

switch(grade)

    { case  ‘A’:cout<<“100~85\n”; break;

         case  ‘B’:cout<<“84~70\n”;  break;

         case  ‘C’:cout<<“69~60\n”; break;

         case  ‘D’:cout<<“no pass\n”; break;

         default:cout<<“error\n”;

      }

注意:

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

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

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

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

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

   case  ‘A’:

   case  ‘B’:

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

void  main(void )

{   int  i=10;

    switch(i)

      {    case  9:  i++;

           case   10:  i++;               i=11

           case  11:  i++;                i=12

           default:   i++;                 i=13

       }     cout<<“i=”<<i<<endl;

}  

i=13

 

int  x=1,  y=0,  a=0, b=0;

switch( x )

{  case  1:  

         switch( y )

            {  case  0:  a++;  break;        a=1

                case  1:  b++;  break;

            }

    case  2:

        a++;  b++;  break;                  a=2       b=1

    case  3:

        a++;  b++;

}                                         a=2b=1

cout<<“a=“<<a<<‘\t’<<“b=”<<b<<endl;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值