重温C++(三)教材章节2.1-2.3

第二章 C++基础知识2.1-2.3

算法有许多种表示方法,其中流程图和伪码是常用的两种。
伪码是介于自然语言和程序语言之间的一种自然类语言的表示方法,书写形式自由,容易转换成程序。
1. if语句的嵌套:
if语句的嵌套有两种形式,一种是嵌套在else分支中,格式为:
if ()语句1
else if
else if
……
另一种是嵌套在if分支中,格式为:
if(){
if()
else
}
else
规定if和else就近配对。

2.switch语句:
表达式作为判断条件,称为条件表达式,只能取整型、字符型、布尔型或枚举型等开关值,不能取连续值。先求表达式的值,然后在常量表达式中找到与之相符的分支作为执行入口,直到遇到break语句或者开关语句的结束括号“}”为止,当表达式与所有的开关值均不相等时,若有default分支,则执行其语句序列,否则跳出switch语句。
而且是允许多个常量表达式对应同一个语句序列。
在书上P41页的例题有点意思,分享一下:

运输公司运送一批货物,计费如下,设运输里程为s,运费打折如下:
s<250 不打折
250<=s<500 2%折扣
500<=s<1000 5%折扣
1000<=s<2000 8%折扣
2000<=s<3000 10%折扣
3000<=s 15%折扣
在这里插入图片描述
在这里插入图片描述
通过这道题可以更好地理解switch语句的使用,在一般情况下,switch语句有一些规定,比如说:
1、各个case(包括default)分支出现的次序可以是任意的,通常将default语句放在最后;
2、break语句可以自选,如果没有break语句,则每一个case语句都要执行一遍,从逻辑关系来说,每一个case之后都要接一个break语句,但是也可以有例外,比如我现在分享的这道题,常规的应该是:
cin>>scure;
switch(score){
case ‘A’: case ‘a’: cout<<“excellent”;break;
default: cout<<“fair”;
}在这题中,等于是利用case将本身一个费用划分成了好几个阶段的费用,因为从顶端,也就是大于3000的是最顶端也是最容易一层层剥开来计算的,另外程序中还写了“f+”,从一开始的f=0开 始,是要将上面的每一个f都加上,每经过一次case的计算,f都会改变一次,我尝试着将除第一个外的+全部删去,再次运行,得到的结果就是5000,即s<250,如果在最后一个加上+,f的值就为4500+5000=9900.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值