程序流程結構
C/C++?持最基本的三種程序運?結構:順序結構缩抡、選擇結構贺喝、循環(huán)結構
- 順序結構:程序按順序執(zhí)?寓涨,不發(fā)?跳轉
- 選擇結構:依據(jù)條件是否滿?愚战,有選擇的執(zhí)?相應功能
- 循環(huán)結構:依據(jù)條件是否滿?娇唯,循環(huán)多次執(zhí)?某段代碼
單行if
if(條件){
條件為真時執(zhí)行的事情
}
int main () {
int score;
cout <<"please input your score "<< endl;
cin >> score;
if(score >=650){
cout <<" you can 985 "<< endl;
}
if(條件){
條件為真時執(zhí)行的事情
}else{
不滿足條件為真時執(zhí)行的事情
}
# include <iostream>
using namespace std;
int main () {
int score;
cout <<"please input your score "<< endl;
cin >> score;
if(score >=650){
cout <<" you can 985 "<< endl;
}else{
cout <<" you can not 985 "<< endl;
}
}
if(條件1){
滿足條件1為真時執(zhí)行的事情
}else if(條件2){
滿足條件2為真時執(zhí)行的事情
}}else if(條件3){
滿足條件3為真時執(zhí)行的事情
}
...
else{
不滿足以上條件為真時執(zhí)行的事情
}
三只小豬稱重
有三只?豬ABC,請分別輸?三只?豬的體重寂玲,并且判斷哪只?豬最重塔插?
# include <iostream>
using namespace std;
int main () {
int pigA;
int pigB;
int pigC;
int maxWeight;
cout <<"please input your pigA weight "<< endl;
cin >> pigA;
cout <<"please input your pigB weight "<< endl;
cin >> pigB;
cout <<"please input your pigC weight "<< endl;
cin >> pigC;
// if 下只有一行可以省略大括號
if (pigA >= pigB)
maxWeight = pigA;
else
maxWeight = pigB;
if (maxWeight < pigC)
maxWeight = pigC;
cout <<"max weight="<< maxWeight<< endl;
}
BMI計算器
計算公式為:BMI=體重÷身高^2。(體重單位:千克拓哟;身高單位:米想许。)
#include <iostream>
using namespace std;
int main(){
double weight;
double height;
double BMI;
cout << "input your weight" << endl;
cin>>weight;
cout << "input your height" << endl;
cin>>height;
BMI = weight/(height*height);
if(BMI <= 18.4){
cout << "thin and your BMI is " << BMI << endl;
}else if(BMI > 18.4 && BMI <= 23.9){
cout << "normal and your BMI is " << BMI << endl;
}else if(BMI > 23.9 && BMI <=27.9){
cout << "overweight and your BMI is " << BMI << endl;
}else if(BMI > 27.9 ){
cout << "fat and your BMI is " << BMI << endl;
}else {
cout << "follow the instructions" << endl;
}
}
三目運算符
// 表達式1? 表達式2:表達式3
// 如果表達式1為真 執(zhí)行表達式 2 并且返回表達式2 的結果
// 如果表達式1為假 執(zhí)行表達式 3 并且返回表達式3 的結果
#include <iostream>
using namespace std;
// 表達式1? 表達式2:表達式3
// 如果表達式1為真 執(zhí)行表達式 2 并且返回表達式2 的結果
// 如果表達式1為假 執(zhí)行表達式 3 并且返回表達式3 的結果
int main(){
int a = 100;
int b = 200;
int c = 300;
// a和b誰大
int max;
// if (a > b)
// max = a;
// else
// max = b;
// cout << max <<endl;
cout <<( a > b ? a : b)<<endl;
// 三目運算返回的是變量可以繼續(xù)賦值運算
( a > b ? a : b) = 1000;
cout <<"a = "<< a<<endl; // 100
cout <<"b = "<< b<<endl; // 1000
// 三個數(shù)的最大值
cout <<"san = "<<((a>b?a:b) > c ? (a>b?a:b) : c)<<endl; // 1000
}
switch語句
語法
switch(表達式){
case 結果1: 執(zhí)行語句;
break;
case 結果2: 執(zhí)行語句;
break;
case 結果3: 執(zhí)行語句;
break;
...
default: 執(zhí)行語句;
break断序;
}
舉個例子
#include <iostream>
using namespace std;
// 10 ~ 9 經(jīng)典之作
// 8 ~ 7 非常
// 6 ~ 5 一般般
// 5 以下 爛片
int main(){
// 每一個case有執(zhí)行語句的都要寫 break 要防止case穿透
int score;
cout<< "please input your score" << endl;
cin >> score;
cout<< "score = "<< score<<endl;
switch (score) {
case 10:
case 9:
cout<< "very very very very good"<< endl;
break;
case 8:
case 7:
cout<< " good"<< endl;
break;
case 6:
case 5:
cout<< "normal"<< endl;
break;
default:
cout<< "bad"<< endl;
break;
}
}
注意1:switch語句中表達式類型只能是整型或者字符型
注意2:case里序會一直向如果沒有break流纹,那么程下執(zhí)行
總結:與if語句比,對于多條件判斷時违诗,switch的結構清晰捧颅,執(zhí)行效率高,缺點是switch不可以判斷區(qū)間