第三章 流程控制语句 | ||||
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; |