在上一文中,我们讲了一个小明买雪糕的故事。假如小明去的冰淇淋店重新制定了优惠活动。
因为有原价、9折、8折、6折四种情况,此时我们使用双分支结构是没有办法处理的。就不得不想一种新的方法。
C++中的多分支语句包括if语句和switch语句。
它的语法如下:
if (condition1) {
// 如果condition1为真,则执行这里的代码
} else if (condition2) {
// 如果condition1为假,但condition2为真,则执行这里的代码
} else {
// 如果condition1和condition2都为假,则执行这里的代码
}
其中,condition1、condition2等都是条件表达式,可以是任何返回值为布尔类型的表达式。如果condition1为真,则执行if语句块中的代码;否则,判断condition2是否为真,如果为真,则执行else if语句块中的代码;否则,执行else语句块中的代码。
以下是C++中if多分支语句的例子:
if (a == b){
cout << "hello";
} else if (a == c){
cout << "bye";
} else if (a == d){
cout << "good morning";
} else{
cout << "hi";
}
在这个例子中,如果a等于b,则输出"hello";如果a等于c,则输出"bye";如果a等于d,则输出"good morning";否则输出"hi"。
switch语句也是一种多分支语句,它的语法如下:
switch (expression) {
case value1:
// 如果expression的值等于value1,则执行这里的代码
break;
case value2:
// 如果expression的值等于value2,则执行这里的代码
break;
...
default:
// 如果expression的值不等于任何一个case后面的值,则执行这里的代码
break;
}
其中,expression是一个表达式,可以是任何类型的表达式;value1、value2等是常量表达式,可以是整型、字符型、枚举型等类型的常量表达式。如果expression的值等于某个case后面的值,则执行该case语句块中的代码;如果expression的值不等于任何一个case后面的值,则执行default语句块中的代码。
下面是一个简单的示例:
#include <iostream>
using namespace std;
int main() {
int num = 2;
switch(num) {
case 1:
cout << "num is 1" << endl;
break;
case 2:
cout << "num is 2" << endl;
break;
default:
cout << "num is not 1 or 2" << endl;
break;
}
return 0;
}
上述代码中,我们定义了一个整型变量num,并使用switch语句根据num的值执行不同的代码块。在这个例子中,num的值为2,因此会执行第二个case语句,输出"num is 2"。
在C++中,多个if语句是不必选其一执行的。如果多个if语句都满足条件,那么它们都会被执行。
if (x > 0) {
cout << "x is positive" << endl;
}
if (x % 2 == 0) {
cout << "x is even" endl;
}
如果x的值为6,则上述代码将输出:
x is positive
x is even
因为x既是正数又是偶数。
如图所示:
小明夏天去买冰棍,老板说买 30 个及以上 1 元 / 个, 20∼29 个 1.2 元 / 个,10∼19 个 1.5 元 / 个, 10个以下 1.8 元 / 个!
请从键盘读入小明买冰棍的数量,计算小明应该付的价格(价格保留 11 位小数)!
根据分析的已知,未知按需要定义变量。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:冰棍的数量n、单价
//未知:应该付的价格
//二、数据定义
int n;
、
return 0;
}
从键盘读入购买的数量。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:冰棍的数量n、单价
//未知:应该付的价格
//二、数据定义
int n;
//三、数据输入
cin>>n;
return 0;
}
30 个及以上 1 元 / 个, 20∼29 个 1.2 元 / 个,10∼19 个 1.5 元 / 个, 10个以下 1.8 元 / 个。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:冰棍的数量n、单价
//未知:应该付的价格
//二、数据定义
int n;
//三、数据输入
cin>>n;
//四、数据计算
if(n>=30){
}else if(n>=20){
}else if(n>=10){
}else {
}
return 0;
}
复习一下输出小数点有两种方式。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:冰棍的数量n、单价
//未知:应该付的价格
//二、数据定义
int n;
//三、数据输入
cin>>n;
//四、数据计算
if(n>=30){
//五、输出结果
cout<<fixed<<setprecision(1)<<n*1.0;
}else if(n>=20){
//五、输出结果
printf("%.1f",n*1.2);
}else if(n>=10){
//五、输出结果
printf("%.1f",n*1.5);
}else {
//五、输出结果
printf("%.1f",n*1.8);
}
return 0;
}
已知有 A,B,C,D,E 五种包装箱,为了不浪费材料,小于 10 公斤的用 A 型,大于等于 10公斤小于 20公斤的用 B 型,大于等于 20公斤小于40 公斤的用 C 型,大于等于 40 公斤的小于 50公斤的用 D 型,大于等于 50 公斤小于 80 公斤的用 E 型。
现在输入一货物的重量(小于 80 公斤),找出最经济型的包装箱型号。
根据分析的已知,未知按需要定义变量。
从键盘读入货物的重量。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:货物的重量
//未知:最经济型的包装箱型号
//二、数据定义
int weight;
//三、数据输入
cin>>weight;
return 0;
}
根据题目要求设计表达式。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:货物的重量
//未知:最经济型的包装箱型号
//二、数据定义
int weight;
//三、数据输入
cin>>weight;
//四、数据计算
if(weight>=50&&weight<=80){
}else if(weight>=40){
}else if(weight>=20){
}else if(weight>=10){
}else{
}
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:货物的重量
//未知:最经济型的包装箱型号
//二、数据定义
int weight;
//三、数据输入
cin>>weight;
//四、数据计算
if(weight>=50&&weight<=80){
//五、输出结果
cout<<"E";
}else if(weight>=40){
//五、输出结果
cout<<"D";
}else if(weight>=20){
//五、输出结果
cout<<"C";
}else if(weight>=10){
//五、输出结果
cout<<"B";
}else{
//五、输出结果
cout<<"A";
}
return 0;
}
输入某学生成绩,如果 86 分以上(包括 86 分)则输出 VERY GOOD ,如果在 60 到 85 之间的则输出 GOOD (包括 60 和 85 ),小于 60 的则输出 BAD。
根据分析的已知,未知按需要定义变量。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:学生成绩n
//未知:学生成绩等级
//二、数据定义
int n;
return 0;
}
从键盘读入学生成绩。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:学生成绩n
//未知:学生成绩等级
//二、数据定义
int n;
//三、数据输入
cin>>n;
return 0;
}
<60、60<=n<=85、>=86三个等级。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:学生成绩n
//未知:学生成绩等级
//二、数据定义
int n;
//三、数据输入
cin>>n;
//四、数据计算
if(n<60){
}else if(60<=n&&n<=85){
}else{
}
return 0;
}
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:学生成绩n
//未知:学生成绩等级
//二、数据定义
int n;
//三、数据输入
cin>>n;
//四、数据计算
if(n<60){
//五、输出结果
cout<<"BAD";
}else if(60<=n&&n<=85){
//五、输出结果
cout<<"GOOD";
}else{
//五、输出结果
cout<<"VERY GOOD";
}
return 0;
}
已知有三个不等的数,将其中的最大数找出来。
根据分析的已知,未知按需要定义变量。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:三个数
//未知:谁最大
//二、数据定义
int a,b,c;
return 0;
}
从键盘读入三个整数。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:三个数
//未知:谁最大
//二、数据定义
int a,b,c;
//三、数据输入
cin>>a>>b>>c;
return 0;
}
既然是最大的数,必然是大于其它两个数。
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:三个数
//未知:谁最大
//二、数据定义
int a,b,c;
//三、数据输入
cin>>a>>b>>c;
//四、数据计算
if(a>b&&a>c){
}
if(b>a&&b>c){
}
if(c>a&&c>b){
}
return 0;
}
#include<iostream>
using namespace std;
int main(){
//一、分析问题
//已知:三个数
//未知:谁最大
//二、数据定义
int a,b,c;
//三、数据输入
cin>>a>>b>>c;
//四、数据计算
if(a>b&&a>c){
//五、输出结果
cout<<a;
}
if(b>a&&b>c){
//五、输出结果
cout<<b;
}
if(c>a&&c>b){
//五、输出结果
cout<<c;
}
return 0;
}
输入三个数,按由大到小顺序打印出来。
根据分析的已知,未知按需要定义变量。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:三个整数
//未知:大小顺序
//二、数据定义
int a,b,c,temp;
return 0;
}
从键盘读入三个整数。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:三个整数
//未知:大小顺序
//二、数据定义
int a,b,c,temp;
//三、数据输入
cin>>a>>b>>c;
return 0;
}
典型的两数交换问题,在C++程序结构入门之顺序结构二中介绍了三种方法,用其中一种即可。
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:三个整数
//未知:大小顺序
//二、数据定义
int a,b,c,temp;
//三、数据输入
cin>>a>>b>>c;
//四、数据计算
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
//一、分析问题
//已知:三个整数
//未知:大小顺序
//二、数据定义
int a,b,c,temp;
//三、数据输入
cin>>a>>b>>c;
//四、数据计算
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
//五、输出结果
cout<<c<<" "<<b<<" "<<a;
return 0;
}
以上就是多分支结构的内容,关于分支结构的内容就介绍到这里,下一节将对循环结构进行讨论。
阅读量:214
点赞量:0
收藏量:0