if break语句_8、嵌套if语句、switch语句

1、嵌套if语句
嵌套if语句是指在 if...else分支中还存在if...else 语句。
不大难,题目后期当练习再补。
2、switch语句
示例3.20:

看起来不难,先判断是否是2种情况,不是就计算嘛,可以一直if嵌套来判断,但是好麻烦哎。
//exam 3.20
#include
using namespace std;
int main()
{double a,b; char op;cin>>a>>b>>op;if (op=='+')cout< 看看书上写的吧:运用了新的语句~
//exam 3.20
#include
using namespace std;
int main()
{float num1,num2; char op;cin>>num1>>num2>>op;switch(op){case'+':cout< 


有趣~ switch语句可以描述分支问题,那它到底是怎样的呢?
基本格式:
switch (表达式)
{
case 常量表达式1:[语句组1][break;]
........
case 常量表达式n:[语句组n][break;]
[default:语句组n+1]
}
功能:(多读几遍,很重要)
首先计算表达式的值,case后面的常量表达式值逐一与之匹配,当某一个case分支中的常量表达式值与之匹配时,则执行该分支后面的语句组,然后顺序执行之后的所有语句,直到遇到break语句或switch语句的右括号 "}" 为止。
如果switch 语句中包含default,default表示表达式与各分支常量表达式的值都不匹配时,执行其后面的语句组,通常将default 放在最后。
规则:

示例3.23:

x代表人均食物支出金额,y代表人均总支出金额,n表示恩格尔系数
n=x/y*100
报错了!!!
//practice 3.23
#include
using namespace std;
int main()
{float n; float x,y;cin>>x>>y;n=x/y*100;switch(n){case'n>=60':cout<<"恩格尔系数为"<=50&&n<60':cout<<"恩格尔系数为"<=40&&n<50':cout<<"恩格尔系数为"<=30&&n<40':cout<<"恩格尔系数为"<=20&&n<30':cout<<"恩格尔系数为"< 报错,case后面是常量表达式! 不能这么写!
一起看下书上给的答案:
//exam 3.23
#include
using namespace std;
int main()
{int n; float x,y;scanf("%f %f",&x,&y);n=100*x/y+0.5;switch(n/10){case 0:case 1:printf("极其富裕n");break;case 2:printf("富裕n");break;case 3:printf("相对富裕n");break;case 4:printf("小康n");break;case 5:printf("温饱n");break;default:printf("贫穷n");break;}return 0;
}
示例3.24:

x元钱,想买数量最多的书,那就是x/6 余数是1、2、3、4、5、0,
如果余数是0,那就全部买6元的书,其他的数量都是0;
余数是1,那就可以少买2本6元的书,加上这1元就买一本13元的书,6元,减2本;13加一本,其他为0;
余数是2,那就可以少买3本6元的书,加上这2元就买一本20元的书,6元,减3本;20加一本,其他为0;
余数是3,那就可以少买2本6元的书,加上这3元就买一本15元的书,6元,减2本;15加一本,其他为0;
余数是4,那就可以少买4本6元的书,加上这4元就买一本13元一本15元的书,6元,减4本;13和15各加一本,其他为0;
余数是5,那就可以少买5本6元的书,加上这5元就买一本15元一本20元的书,6元,减5本;15和20各加一本,其他为0;
//practice 3.24
#include
using namespace std;
int main()
{int x,a,b,c,d; cin>>x;a=x/6;switch(x%6){case 0:b=0,c=0,d=0;break;case 1:a=a-2,b=1,c=0,d=0;break;case 2:a=a-3,b=0,c=0,d=1;break;case 3:a=a-2,b=0,c=1,d=0;break;case 4:a=a-4,b=1,c=1,d=0;break;case 5:a=a-5,b=0,c=1,d=1;break;}cout<<"6元"< 


冒号忘记打了,要细心啊,看好样例输出啊!!
作业:

//practice 3.24
#include
using namespace std;
int main()
{int x; cout<<"[1]apples"<>x;switch(x){case 0:cout<<"退出查询";break;case 1:cout<<"price= 3.0";break;case 2:cout<<"price= 2.5";break;case 3:cout<<"price=4.1";break;case 4:cout<<"price= 10.2";break;default:cout<<"0";break;}return 0;
} 


虽然是做出来了,但总觉得还有更好的办法!再想一想,想不出来周一再问问姐姐或小木~
可算是学完了。。。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
