C++基础(五)——程序流程结构
一、选择结构和if语句
if语句用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
1.1 if语句的形式
if语句的一般表达形式为
if(表达式)语句1
[else 语句2]
由上面的if语句的一般表达形式可以派生出以下3中语句。
1.1.1 if(表达式)语句
没有else部分。例如:
if(x>y) cout<<x<<endl;
1.1.2 if(表达式)语句1 else 语句2
包含else部分。例如:
if(x>y) cout<<x;
else cout<<y;
1.1.3 多个else语句
if (表达式1)语句1
else if(表达式2)语句2
else if(表达式3)语句3
······
else if(表达式n)语句n
else 语句m
1.2 if语句的嵌套
在 if语句中包含一个或多个if语句称为if语句的嵌套。一般形式如下:
if()
if()语句1
else 语句2
else
if()语句3
else 语句4
if与else配对关系:else总是与它上面最近、且未配对的if配对。开发时建议用大括号来确定配对关系。
if()
{if()语句1
else 语句2}
else
{if()语句3
else 语句4}
二、条件运算符和条件表达式
若在if语句中,判别的表达式为“真”或“假”时,都执行一个赋值语句且给同一个变量赋值时,可以用简单的条件运算符(?:)来处理。
条件表达式的一般形式为:
表达式1 ? 表达式2 : 表达式3
先求解表达式1,若为真,则求解表达式2,此时表达式2的值就是整个表达式的值;若为假,则求解表达式3,表达式3的值就是整个表达式的值。
例如:
if(a>b) max = a;
else max = b;
可以用条件运算符来表示:
max = (a>b) ? a:b;
三、多分支选择结构与switch语句
switch语句是多分支选择语句,用来实现多分支选择结构,if语句只有两个分支可供选择。
switch语句一般形式:
switch(表达式)
{
case 常量表达式1:语句1;break;
case 常量表达式2:语句2;break;
······
case 常量表达式n:语句n;break;
default :语句n+1;break;
}
注:多个case可以共用一组执行语句:
switch(表达式)
{
case 常量表达式1:
case 常量表达式2:
case 常量表达式3:语句1;break;
}
四、循环结构和循环语句
4.1 while循环语句
while语句的一般形式:while(表达式)语句。
其作用是,当指定的条件为真时,执行while语句中的内嵌语句。
例如,求1+2+3+4+···+100
#include <iostream>
using namespace std;
int main(){
int i = 1,sum = 0;
while (i<=100){
sum= sum+i;
i++;
}
}
4.2 do-while循环语句
do-while语句的特点是先执行循环体,然后判断循环条件是否成立。
例如,求1+2+3+4+···+100
#include <iostream>
using namespace std;
int main(){
int i = 1,sum = 0;
do
{
sum= sum+i;
i++;
}while (i<=100)
}
4.3 for循环语句
for语句的一般表达式:for(循环变量的初值;循环条件;循环变量增值)
例如,求1+2+3+4+···+100
#include <iostream>
using namespace std;
int main(){
int sum = 0;
for(i = 1;i<=100;i++)
sum=sum+i;
}
4.4 提前结束循环(break语句和continue语句)
4.4.1 break语句
break语句除了可以使流程跳出switch结构,break也可以用于循环体内,作用是使流程从循环体中跳出循环,提前结束循环。
4.4.2 continue语句
continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行的循环判定。
continue语句与break语句的区别:continue语句只是结束本次循环,而不是结束整个循环的执行。而break语句则是结束整个循环的过程。