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

e500a6478c486d5c7beca6de3b4b7b38.png

1、嵌套if语句

嵌套if语句是指在 if...else分支中还存在if...else 语句。

不大难,题目后期当练习再补。

2、switch语句

示例3.20:

81564f5a599cba45c71c2f5af369cd86.png

看起来不难,先判断是否是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<

03addc10d15486485cb975324500dbd2.png

559f144e821022a53696efdda002d84f.png

7e6aac6a8355ea6596b403875e6c6782.png

有趣~ switch语句可以描述分支问题,那它到底是怎样的呢?

基本格式:

switch (表达式)

{

case 常量表达式1:[语句组1][break;]

........

case 常量表达式n:[语句组n][break;]

[default:语句组n+1]

}

功能:(多读几遍,很重要)

首先计算表达式的值,case后面的常量表达式值逐一与之匹配,当某一个case分支中的常量表达式值与之匹配时,则执行该分支后面的语句组,然后顺序执行之后的所有语句,直到遇到break语句或switch语句的右括号 "}" 为止。

如果switch 语句中包含default,default表示表达式与各分支常量表达式的值都不匹配时,执行其后面的语句组,通常将default 放在最后。

规则:

9691d920efee5534dfcef13bea930eb9.png

示例3.23:

855caa11d562ff01acc007f6eb7ec6f4.png

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:

54dd1155446971f18b8cd02107d1d2a9.png

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元"<

f63876f36d706a0ee32e6d46ed7af6e4.png

87b18f322493f1f55a4c87cb4c6432b0.png

fb9845df416512d44c2d95fa3421b4d3.png

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

作业:

a5d020417fc55257f38fc0ed3112aca0.png
//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;
}

4d3e8498f123a944e067b666b800db7b.png

5150e61dfc7b79b615e6b55a1abcffcf.png

52516eb7a9c3e9b447b91e92cd7a479e.png

虽然是做出来了,但总觉得还有更好的办法!再想一想,想不出来周一再问问姐姐或小木~

可算是学完了。。。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章