第 3 章程序的选择执行

第 3 章程序的选择执行

当我们走出家门时,会自觉不自觉地看一下外面的天气,如果下雨鱿带上雨伞。当我们走到十字路口雷要过马路时,会依据红绿灯信息选择停下来还是过马路。上课时,我们会依据课程表选择上课教室。学校运动会,我们每个人要选择是否参加项目比赛,若选择参加,要参加哪个项目。买衣服时,我们会依据自己的喜好选择衣服款式和色彩……生活中需要我们依据不同的条件和情况选择做不同事情的现象到处存在,在计算机语言中,同样需要引入选择结构(或称分支结构)来描述选择事件的解决过程。
第一节 if 语句 和 关系表达式
星星公司致力于信件快递业务,收费标准为:500 克以内 6 元,超过 500 克 9 元。
分析:这是一个选择问题,快递员依据信件的重量 W 值选择收取费用 C,用数学表达式表示如下:
程序如下:
//exam3.1
#include
using namespace std;
int main(){
int c; //定义变量
float w;//定义变量
cout<<”w=”;//提示输入
cin>>w; //读人快件重量 w
if (w<=500) c=6; //如果 w<=500,收费 6 元
else c=9 //否则收费 9 元
cout<< “c=”<<c<<endl;
return 0;
运行结果:
70 690
6 9
问题中用了 if …else…语句,表示依据信件的重量 W 值,选择如何求费用 C 的值,对于选择问题,依据的条件是问题的关键。那么,如何表达条件?if …else…能解决怎样的问题?
为了回答这些问题,我们将学习 C++语言的 if 语句和关系表达式。
3.1.1 关系表达式
由关系运算符连接起来用于比较的表达式叫关系表达式。
关系运算符:>,>=,,<=,<,!=关系运算符优先级:
高于赋值运算符,低于算术运算符。
在关系运算符内部
和!=优先级较低。
关系表达式的一般形式可以表示为:
表达式 关系运算符 表达式
“表达式”可以是算术表达式.也可以是关系表达式、逻辑表达式、赋值表达式、字符表达式。关系表达式是一个逻辑值,即“真”或“假”,如果为“真”,则表示条件成立;如果为“假”,则表示条件不成立。关系表达式的结果是:true(1)或 false(0)
例:x=3,y=5,x<y 的结果为真。
3.1.2 if 语句 格式
If (表达式) 语句功能:当条件成立即表达式值为真时,执行“语句”,否则执行 if 语句下方的语句。执行流程如图 3.1 所示。
式 2.
关于 if-else 语句:
if(表达式)语句 1;else 语句 2;
注:条件测试为 true 时所执行的程序块叫做 then 子句,条件测试为 false 时所执行的语句叫做 else 子句。
例:为了学生的卫生安全,学校给每个住宿生配一个水杯,每只水杯 3 元,大洋商城打88 折,百汇商厦“买八送一”。输入学校想买水杯的数量,请你当“参谋”,算一算:到哪家购买较合算?输出商家名称。
分析:设变量 cup 存放读入的水杯数量,变量 a 为到大洋商城购买水杯的费用,变量 b为到百汇商厦购买水杯的费用。那么:
a=cup 30.88
b=(cup-cup/8)3
式中,cup/8 是求 cup 除以 8 的商,即如果 a<b,那么到大洋商城购买。
程序如下:
//exam3.6
#include
using namespace std;
int main()
{
int cup; //定义变量
float a,b;
cout<<”cup=”; //提示输入
cin>>cup: //输入购买的杯子数量
a=cup
3*0.88; //求大洋商城购买水杯费用
b=(cup-cup/8)*3; //求百汇商厦购买水杯的费用
if (a<b) cout<<”大洋商城”<<endl; //比较 a、b 值.输出购买商家
else cout<<”百汇商厦”<<endl;
return 0;
运行结果:
cup=85
大洋商场
cup=110
百汇商厦
说明:问题中的关系表达式是到两商场购买杯子的费用比较,为了方便关系式的书写,程序中采用先求出购买的费用,再进行比较的方法。当需要比较的表达式比较复杂时,问题
提供了比较好的解决方式。例:星星音乐社团招收社员,依据音乐成绩发放不同的广告,音乐成绩不高于 80 分的同学发的广告单内容是“欢迎你参加音乐社”,其他同学发的广告单内容是“非常欢迎你参加音乐社”。
方法 1:打印广告单时,可以这么考虑,依据输人的音乐成绩 M,当 M>=80 时,打印“非常欢迎你参加音乐社”.否则,打印“欢迎你参加音乐社”。
程序如下:
//exam3
include
using namespace std;
int main()
{
int m; //定义变量
cout<<”m"; //提示输人
cin>>m; //读入音乐成绩
if (m>=80) cout<<”非常欢迎你参加音乐社”; //依据音乐成绩发放不同广告内容
else cout<<” 欢迎你参加音乐社";
return 0;
}
方法 2:也可以这么考虑,分析广告词的特点,音乐成绩高于 80 分的人的广告词比其他人多了“非常”两个字,即当 M>=80 时先打印“非常”然后打印共同的语句“欢迎你参加音乐社”。
//exam
include
usinq namespace std;
int main()
{
int m;//定义变量
cout<<“m=”;//提示输入
cin>>m: //读入音乐成绩
if(m>=80)cout<<” 非常 ”;//依据音乐成绩发放不同广告内容
cout<<” 欢迎你参加音乐社”;
return 0;
}
运行结果:
m=78
欢迎你参加音乐社
m=90
非常欢迎你参加音乐社
思考:对于同一个条件,方法 1 有两个分支,方法 2 只有一个分支请思考它们的区别。
3.1.3 逻辑 表达式
逻辑运算符:&&(与/且)||(或)!(非)逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。将两个关系表达式用逻辑运算符连接起来的表达式,称为逻辑表达式,逻辑表达式的一般形式可以表示为:
表达式 逻辑运算符 表达式
逻辑表达式的值是一个逻辑值:在 C++中整型数据可以出现在逻辑表达式中,在进行逻辑运算时,根据整型数据的值是 0 或非 0,把它作为逻辑值“假”或“真”。然后参加逻辑运算。下面给出逻辑运算真值表,约定:A、B 为两个条件,值为 0 表示条件不成立,值为 1 表示条件成立。
C++中,参加逻辑运算的对象可为任意类型的数据,0 为假,非 0 为真。
例如:
5%2 &&7 true (1)
(5>3 && 2) || (8<4-!0) true (1)
觉得好请回复666666666666666666666666

发布了79 篇原创文章 · 获赞 79 · 访问量 2143

猜你喜欢

转载自blog.csdn.net/dgyshy/article/details/104882122