第三章 流程控制语句    
 
  3.1 if 语句
  3.2 switch 语句
  3.3 for 语句
  3.4 while 语句
  3.5 do 语句
  3.6 跳转语句

  3.1 if 语句
  语句格式:
  if ( 表达式 ) 语句 1 [ else 语句 2 ]
  执行过程:
  求作为条件的表达式的值,得到真或假;
  为真时执行语句 1 ,为假时若 else 子句存在则执行语句 2 ,否则不执行任何操作。
  格式举例:
  if (x>=60) cout<< ” Pass ” <<endl;
  else cout<< ” Not pass ” <<endl;    
  多重 if 语句
  if ( 表达式 1 ) 语句 1
  else if ( 表达式 2 ) 语句 2
  else 语句 3
  图示执行过程
  

  3.2 switch 语句
  语句格式:
  switch ( 表达式 ) {
  case < 常量表达式 1>: < 语句 1-1>   ?
  case < 常量表达式 2>: < 语句 2-1>   ?
  [default: < 语句 n-1> …]
  }
  
  格式举例
  switch(n%3) {
  case 0: c0++; break;
  case 1: c1++; break;
  case 2: c2++; break;
  }
  编程举例
  根据从键盘上输入的两个整数和一个二目算术运算符求出运算结果。
  分析
  因需键盘输入和屏幕输出,所以要在程序开始包含 iostream.h 头文件;
  要设两个整数变量,假定为 x 和 y 保存从键盘上输入的操作数,设一个字符变量,假定为 op 保存输入的一个算术运算符;
  设用一个整数变量保存运算结果,假定用标识符 z 表示, z=x op y;
  程序中只需一个主函数,开始定义变量,接着输入,再接着利用 switch 语句按 op 的值不同进行相应的计算,最后输出结果。
  根据分析编写程序
  #include<iostream.h>
  #include<stdlib.h>
  void main() {
  int x,y,z; char op;
  cout<<" 输入两个整数和一个运算符 :";
  cin>>x>>y>>op;
  switch (op) {
  case '+': z=x+y; break;
  case '-': z=x-y; break;
  case '*': z=x*y; break;
  case '/': z=x/y; break;
  case '%': z=x%y; break;
  default: {cout<<" 运算符错 !";exit(1);}
  }
  cout<<x<<op<<y<<'='<<z<<endl;
  }
  程序运行结果
  输入两个整数和一个运算符 :50 8 /
  50/8=6

  3.3 for 语句
  语句格式:
  for ( 表达式 1 ; 表达式 2 ; 表达式 3 ) 语句
  执行过程:
  1 计算表达式 1 ;
  2 计算表达式 2 ,得到值 M;
  3 若 M 非 0 则执行循环体,否则结束该语句;
  4 计算表达式 3 ,转向第 2 步。
  格式举例
  for(i=0; i<n; i++) cout<<i*i<< ' ' ;
  for(int j=1; j<=M; j++) {a=a+b; b=3*j;}
  语句嵌套
  for(i=1; i<=5; i++) {
  for(j=1; j<=i; j++) cout<< ' * ' ;
  cout<<endl;
  }
   
  3.4 while 语句
  语句格式: while ( 表达式 ) 语句
  执行过程:
  1 计算表达式的值,假定值为 M ;
  2 若 M 非 0 ,执行循环体,否则结束语句执行;
  3 转向第 1 步。
  格式举例:
  while (x<=0) cin>>x;
  while (1) {s+=i*i; i++; if(s>150) break;}
   
  3.5 do 语句
  语句格式: do 语句 while ( 表达式 );
  执行过程:
  1 执行循环体语句;
  2 计算表达式的值,若非 0 转第 1 步,否则结束循环。
  格式举例:
  do s+=i++; while (s<100);
  do {cin>>x; s+=x; } while (--n);
  三钟循环语句的比较
  for 和 while 语句是先判断循环条件再执行循环体,而 do 循环是先执行循环体,然后再判断,依次反复进行下去,直到循环条件的值为假时止。
  一般情况下 , 它们之间可以相互转换 , 编程时可以任选使用 , 通常使用 for 循环较简单。
  在任一种循环的循环体内都可以使用 break 语句使之终止循环的执行,使用 continue 语句结束一次循环体的执行。
   
  3.6 跳转语句
  1 goto 语句 goto 语句标号 ;
  如: goto finish;
  2 continue 语句 continue;
  如: for(k=0; k<n; k++) {
  if(a[k]<=max) continue;
  max=a[k]; }
  3 break 语句 break;
  4 return 语句 return [ 表达式 ];
  如: return; return x; return a*b;