我們先來討論switch述句,switch後面(整數值){case整數常數值:程式片段;break;default:程式片段;}
如果我要做整數的四則運算我們可以用if...else和switch來表達,上程式碼
if...else寫法
#include <stdio.h>
int main(){
int num1, num2;
char op;
float answer;
scanf("%d%c%d", &num1, &op, &num2);
if(op=='+'){
answer=num1+num2;
}else if(op=='-'){
answer=num1-num2;
}else if(op=='*'){
answer=num1*num2;
}else {
answer=(float)num1/num2;
}
printf("ANS: %f\n", answer);
return 0;
}
上面的程式碼中,首先我們先宣告兩個要做四則運算的數字,接下來宣告op運算符號所以要用char字串宣告,由於答案可能有小數點所以也要用float,第一個if是+的時候兩個數字就做加法,第二個else if是-的時候做減法,第三個else if是*的時候做乘法,最後其實就是除法了所以else後面不用再加if和條件了,最後將answer印出來就好
switch寫法
#include <stdio.h>
int main(){
int num1,num2;
char op;
float answer;
scanf("%d%c%d", &num1, &op, &num2);
switch(op){
case '+':
answer=num1+num2;
break;
case '-':
answer=num1-num2;
break;
case '*':
answer=num1*num2;
break;
case '/':
answer=(float)num1/num2;
break;
}
printf("ANS: %f\n", answer);
return 0;
}
上面的程式碼中,宣告的方面是和if...else一樣的,然後開始套入switch裡面,case'+'就是兩數字做相加,case'-'就是兩數做相減,case'*'就是兩數做相乘,case'/'就是兩數做相除,最後再將結果印出來
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(){
double amount;
double principal=1000.0;
double rate=.05;
cout<<"Year"<<setw(21)<<"Amount on desposit"<<endl;
cout<<fixed<<setprecision(2);
for(unsigned int year=1;year<=10;++year){
amount=principal*pow(1.0+rate,year);
cout<<setw(4)<<year<<setw(21)<<amount<<endl;
}
}
上面的程式碼中是計算複利,假設某人在帳戶存入1000元,年利率是百分之5,計算10內,每年年終帳戶的存額,我們會使用標準函式庫pow進行運算,函式pow(x,y)會計算x的y次方的數值