目录
3.7 选择结构和if语句
3.7.1 if语句的形式
C++的if语句的一般形式为:
if(表达式)语句1
[else语句2]
if语句包含else部分,其中的语句又是一个if语句。而这个内嵌的if语句的else部分中包含的语句又是一个内嵌的if语句。
例3.6 求三角形的面积
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
double a,b,c=0;
cout<<"please enter a,b,c:";
cin>>a>>b>>c;
if(a+b>c&&b+c>a&&c+a>b)
{
double s,area;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<setiosflags(ios::fixed)<<setprecision(4);
cout<<"area="<<area<<endl;
}
else cout<<"it is not a trilateral!"<<endl;
return 0;
}
运行结果: please enter a,b,c:2.45 3.67 4.89
area=4.3565
3.7.2 if语句的嵌套
在if语句中包含一个或多个if语句称为if语句的嵌套
一般形式:
if()
if()语句1
else 语句2
else
if()语句3
else 语句4
应当注意if和else的配对关系。else总是与它上面最近的且未配对的if配对。
3.7.3 条件运算符和条件表达式
若在if语句中,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且给同一个变量赋值时,可以用简单的条件运算符来处理。
条件表达式的一般形式为:
表达式1?表达式2:表达式3
条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1 的值为0(假),则求解表达式3,表达式3 的值就是整个条件表达式的值。
例3.7 转换大小写字母
#include<iostream>
uisng namespace std;
int main()
{
char ch;
cin>>ch;
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
cout<<ch<<endl;
return 0;
}
运行结果: 输入:A 输出:a
3.7.4 多分支选择结构与switch语句
switch语句是多分支选择语句,用来实现多分支选择结构。使用if语句时,如果分支较多,则嵌套的if语句层数也很多,程序的可读性就会降低。
一般形式:
switch(表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
:
case 常量表达式n:语句n
default :语句n+1
}
例如,按照考试成绩的等级打印百分制分数段
switch(grade)
{
case'A':cout<<"85~100\n";
case'B':cout<<"70~84\n";
case'C':cout<<"60~69\n";
case'D':cout<<"60\n";
default:cout<<"error\n";
}