一文详解C++的程序流程控制
C支持最基本的三种程序运行结构顺序结构选择结构循环结构顺序结构程序按顺序执行不发生跳转选择结构依据条件是否满足有选择的执行相应功能循环结构依据条件是否满足循环多次执行某段代码 二、选择结构 1、if语句作用执行满足条件的语句if语句的三种形式单行格式if语句多行格式if语句多条件的if语句单行格式if语句if(条件){ 条件满足执行的语句 }代码示例123456789101112131415intmain() {//选择结构-单行if语句//输入一个分数如果分数大于600分视为考上一本大学并在屏幕上打印intscore 0;cout 请输入一个分数 endl;cin score;cout 您输入的分数为 score endl;//if语句//注意事项在if判断语句后面不要加分号if(score 600){cout 我考上了一本大学 endl;}return0;}注意if条件表达式后不要加分号多行格式if语句if(条件){ 条件满足执行的语句 }else{ 条件不满足执行的语句 };代码示例123456789101112131415intmain() {//选择结构-单行if语句//输入一个分数如果分数大于600分视为考上一本大学并在屏幕上打印intscore 0;cout 请输入一个分数 endl;cin score;cout 您输入的分数为 score endl;//if语句//注意事项在if判断语句后面不要加分号if(score 600){cout 我考上了一本大学 endl;}return0;}多条件的if语句if(条件1){ 条件1满足执行的语句 }else if(条件2){条件2满足执行的语句}... else{ 都不满足执行的语句}代码示例1234567891011121314intmain() {intscore 0;cout 请输入考试分数 endl;cin score;if(score 600){cout 我考上了一本大学 endl;}else{cout 我未考上一本大学 endl;}return0;}嵌套if语句在if语句中可以嵌套使用if语句达到更精确的条件判断2、三目运算符作用通过三目运算符实现简单的判断语法表达式1 ? 表达式2 表达式3解释如果表达式1的值为真执行表达式2并返回表达式2的结果如果表达式1的值为假执行表达式3并返回表达式3的结果。代码示例12345678910111213intmain() {inta 10;intb 20;intc 0;c a b ? a : b;cout c c endl;//C中三目运算符返回的是变量,可以继续赋值(a b ? a : b) 100;cout a a endl;cout b b endl;cout c c endl;return0;}总结和if语句比较三目运算符优点是短小整洁缺点是如果用嵌套结构不清晰3、switch语句作用执行多条件分支语句语法12345678switch(表达式){case结果1执行语句;break;case结果2执行语句;break;...default:执行语句;break;}代码示例12345678910111213141516171819202122232425262728intmain() {//请给电影评分//10 ~ 9 经典// 8 ~ 7 非常好// 6 ~ 5 一般// 5分以下 烂片intscore 0;cout 请给电影打分 endl;cin score;switch(score){case10:case9:cout 经典 endl;break;case8:cout 非常好 endl;break;case7:case6:cout 一般 endl;break;default:cout 烂片 endl;break;}return0;}注意1switch语句中表达式类型只能是整型或者字符型注意2case里如果没有break那么程序会一直向下执行总结与if语句比对于多条件判断时switch的结构清晰执行效率高缺点是switch不可以判断区间三、循环结构1、while循环语句作用满足循环条件执行循环语句语法while(循环条件){ 循环语句 }解释只要循环条件的结果为真就执行循环语句示例123456789intmain() {intnum 0;while(num 10){cout num num endl;num;}return0;}注意在执行循环语句时候程序必须提供跳出循环的出口否则出现死循环2、do…while循环语句作用满足循环条件执行循环语句语法do{ 循环语句 } while(循环条件);注意与while的区别在于do…while会先执行一次循环语句再判断循环条件代码示例12345678910intmain() {intnum 0;do{cout num endl;num;}while(num 10);return0;}总结与while循环区别在于do…while先执行一次循环语句再判断循环条件3、for循环语句作用满足循环条件执行循环语句语法for(起始表达式;条件表达式;末尾循环体) { 循环语句; }代码示例1234567intmain() {for(inti 0; i 10; i){cout i endl;}return0;}详解注意for循环中的表达式要用分号进行分隔总结while , do…while, for都是开发中常用的循环语句for循环结构比较清晰比较常用四、跳转语句1、break语句作用:用于跳出选择结构或者循环结构break使用的时机出现在switch条件语句中作用是终止case并跳出switch出现在循环语句中作用是跳出当前的循环语句出现在嵌套循环中跳出最近的内层循环语句代码示例12345678910111213141516171819202122intmain() {//1、在switch 语句中使用breakcout 请选择您挑战副本的难度 endl;cout 1、普通 endl;cout 2、中等 endl;cout 3、困难 endl;intnum 0;cin num;switch(num){case1:cout 您选择的是普通难度 endl;break;case2:cout 您选择的是中等难度 endl;break;case3:cout 您选择的是困难难度 endl;break;}return0;}2、continue语句作用在循环语句中跳过本次循环中余下尚未执行的语句继续执行下一次循环代码示例1234567891011intmain() {for(inti 0; i 100; i){if(i % 2 0){continue;}cout i endl;}return0;}注意continue并没有使整个循环终止而break会跳出循环3、goto语句作用可以无条件跳转语句语法goto 标记;解释如果标记的名称存在执行到goto语句时会跳转到标记的位置代码示例12345678910intmain() {cout 1 endl;gotoFLAG;cout 2 endl;cout 3 endl;cout 4 endl;FLAG:cout 5 endl;return0;}注意在程序中不建议使用goto语句以免造成程序流程混乱