if break语句_8、嵌套if语句、switch语句
1、嵌套if語句
嵌套if語句是指在 if...else分支中還存在if...else 語句。
不大難,題目后期當練習再補。
2、switch語句
示例3.20:
看起來不難,先判斷是否是2種情況,不是就計算嘛,可以一直if嵌套來判斷,但是好麻煩哎。
//exam 3.20 #include <iostream> using namespace std; int main() {double a,b; char op;cin>>a>>b>>op;if (op=='+')cout<<a<<op<<b<<"="<<a+b<<endl;。。。return 0; }看看書上寫的吧:運用了新的語句~
//exam 3.20 #include <iostream> using namespace std; int main() {float num1,num2; char op;cin>>num1>>num2>>op;switch(op){case'+':cout<<num1<<op<<num2<<"="<<num1+num2<<endl;break;case'-':cout<<num1<<op<<num2<<"="<<num1-num2<<endl;break;case'*':cout<<num1<<op<<num2<<"="<<num1*num2<<endl;break;case'/':if(num2!=0)cout<<num1<<op<<num2<<"="<<num1/num2<<endl;else cout<<"Divided by zero!"<<endl;break;default:cout<<"Invalid operator!";break;}return 0; }有趣~ 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 <iostream> using namespace std; int main() {float n; float x,y;cin>>x>>y;n=x/y*100;switch(n){case'n>=60':cout<<"恩格爾系數為"<<n<<"% 貧窮""<<endl;break;case'n>=50&&n<60':cout<<"恩格爾系數為"<<n<<"% 溫飽""<<endl;break;case'n>=40&&n<50':cout<<"恩格爾系數為"<<n<<"% 小康""<<endl;break;case'n>=30&&n<40':cout<<"恩格爾系數為"<<n<<"% 相對富裕""<<endl;break;case'n>=20&&n<30':cout<<"恩格爾系數為"<<n<<"% 富裕""<<endl;break;default:cout<<"恩格爾系數為"<<n<<"% 極其富裕""<<endl;break;}return 0; }報錯,case后面是常量表達式! 不能這么寫!
一起看下書上給的答案:
//exam 3.23 #include <iostream> 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 <iostream> 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元"<<a<<" 13元"<<b<<" 15元"<<c<<" 20元"<<d<<endl;return 0; }冒號忘記打了,要細心啊,看好樣例輸出啊!!
作業:
//practice 3.24 #include <iostream> using namespace std; int main() {int x; cout<<"[1]apples"<<endl;cout<<"[2]pears"<<endl;cout<<"[3]oranges"<<endl;cout<<"[4]grapes"<<endl;cout<<"[0]Exit"<<endl;cin>>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; }雖然是做出來了,但總覺得還有更好的辦法!再想一想,想不出來周一再問問姐姐或小木~
可算是學完了。。。
總結
以上是生活随笔為你收集整理的if break语句_8、嵌套if语句、switch语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 批量修改数据库存储引擎_my
- 下一篇: sparkcore写mysql_spar