C++ 程式流程結構--選擇結構---if語句
阿新 • • 發佈:2021-12-27
4 程式流程結構
C/C++ 支援最基本的三種程式執行結構:順序結構、選擇結構、迴圈結構
- 順序結構:程式順序執行,不傳送跳轉
- 選擇結構:依據條件是否滿足,有選擇的執行相應功能
- 迴圈結構:依據條件是否滿足,迴圈多次執行某段程式碼
4.1 選擇結構
4.1.1 if語句
作用:執行滿足條件的語句
if 語句的三種形式
- 單行格式 if 語句
- 多行格式 if 語句
- 多條件的 if 語句
- 單行格式 if 語句:
if(條件) { 條件滿足執行的語句 }
示例:
#include <iostream> using namespace std; int main() { // 選擇結構 單行 if 語句 // 使用者輸入分數,如果分數大於600,視為考上一本大學,在螢幕上輸出 int fraction = 0; // 1、使用者輸入分數 cout << "請輸入你的分數:" << endl; cin >> fraction; // 2、列印使用者輸入的分數 cout << "輸入的分數為:" << fraction << endl; // 3、判斷分數是否大於600,如果大於,那麼輸出 // 注意事項,if 條件後面不要加分號 if (fraction > 600) { cout << "恭喜你,考上了一本" << endl; } system("pause"); return 0; }
注意:if 條件表示式後不要加分號
- 多行格式if語句:
if(條件) { 條件滿足時執行的語句 } else { 條件不滿足執行的語句 };
示例:
#include <iostream> using namespace std; int main() { // 選擇結構 - 多行 if 語句 // 輸入考試分數,如果分數大於600,視為考上一本大學,在螢幕上輸出 // 如果沒考上一本大學,列印未考上 int fraction = 0; // 1、輸入考上分數 cout << "請輸入一個考試分數:" << endl; cin >> fraction; // 2、提示使用者輸入的分數 cout << "您輸入的分數為:" << fraction << endl; // 3、判斷 古國大於600,列印考上一本,否則列印未考上 if (fraction > 600) // 大於600執行下面大括號中的內容 { cout << "恭喜 考上一本!" << endl; } else // 不大於600分,執行else後大括號的內容 { cout << "未考上一本" << endl; } system("pause"); return 0; }
- 多條件的 if 語句:
if(條件1) { 條件1滿足執行的語句 } else if(條件2) { 條件2滿足執行的語句 }... else { 都不滿足執行的語句 }
示例:
#include <iostream> using namespace std; int main() { // 選擇結構 多條件 if 語句 // 輸入一個考試的分數 // 如果大於600分,視為考上一本大學,在螢幕上輸出 // 大於500,視為考上二本大學,螢幕輸出 // 大於400,視為考上三本大學,螢幕輸出 // 小於等於400分,視為未考上本科,螢幕上輸出 int fraction = 0; // 1、使用者輸入分數 cout << "請輸入一個考試的分數:" << endl; cin >> fraction; // 2、提示使用者輸入的分數 cout << "您輸入的考試分數為:" << fraction << endl; // 3、判斷 // 如果大於600,考上一本 if (fraction > 600) { cout << "您考上了一本大學" << endl; } // 如果大於500,考上二本 else if (fraction > 500) { cout << "您考上了二本大學" << endl; } // 如果大於400,考上三本 else if (fraction > 400) { cout << "您考上了三本大學" << endl; } // 前三都沒滿足,未考上本科 else { cout << "未考上本科,請再接再勵" << endl; } system("pause"); return 0; }
巢狀if語句:在 if 語句中,可以巢狀使用 if 語句,達到更精確的條件判斷
案例需求:
- 提示使用者輸入一個高考考試分數,根據分數做如下判斷
- 分數如果大於600分視為考上一本,大於500分考上二本,大於400考上三本,其餘視為未考上本科;
- 在一本分數中,如果大於700分,考入北大,大於650分,考入清華,大於600考入人大。
示例:
#include <iostream>
using namespace std;
int main() {
int fraction = 0;
// 1、使用者輸入一個分數
cout << "請輸入考試的分數:" << endl;
cin >> fraction;
// 2、提示使用者輸入的分數
cout << "您的考試分數為:" << fraction << endl;
// 3、判斷
// 如果大於600,考上一本
if (fraction > 600)
{
cout << "恭喜您考入了一本大學" << endl;
// 如果大於700,考上北大
if (fraction > 700)
{
cout << "您考上了北京大學" << endl;
}
// 如果大於650,考上清華
else if (fraction > 650)
{
cout << "您考上了清華大學" << endl;
}
// 如果大於600,考上人大
else
{
cout << "您考上了人民大學" << endl;
}
}
// 如果大於500,考上二本
else if (fraction > 500)
{
cout << "您考上了二本大學" << endl;
}
// 如果大於400,考上三本
else if (fraction > 400)
{
cout << "您考上了三本大學" << endl;
}
// 都不滿足,未考上大學
else
{
cout << "您未考上大學" << endl;
}
system("pause");
return 0;
}
練習案例:三隻小豬稱體重
有三隻小豬ABC,請分別輸入三隻小豬的體重,並且判斷那隻小豬最重?
#include <iostream>
using namespace std;
int main() {
double a = 0;
double b = 0;
double c = 0;
// 請輸入第一隻小豬的體重
cout << "請輸入第一隻小豬的體重:" << endl;
cin >> a;
// 列印第一隻小豬的體重
cout << "第一隻小豬的體重為:" << a << endl;
// 請輸入第二隻小豬的體重
cout << "請輸入第二隻小豬的體重:" << endl;
cin >> b;
// 列印第二隻小豬的體重
cout << "第二隻小豬的體重為:" << b << endl;
// 請輸入第二隻小豬的體重
cout << "請輸入第三隻小豬的體重:" << endl;
cin >> c;
// 列印第三隻小豬的體重
cout << "第三隻小豬的體重為:" << c << endl;
cout << "----------------------------------" << endl;
// 如果 a 比 b 重,那麼 a 和 c 比
if (a > b)
{
// 如果 a 比 c 重,那麼 a 最重
if (a > c)
{
cout << "第一隻小豬最重,體重為:" << a << endl;
}
// 如果 a 沒 c 重,那麼 c 最重
else if (a < c)
{
cout << "第三隻小豬最重,體重為:" << c << endl;
}
else
{
cout << "第一隻和第三隻小豬最重,體重為:" << c << endl;
}
}
// 反正 a 沒 b 重,那麼 b 和 c 比
else if (a < b)
{
// 如果 b 比 c重,那麼 b 最重
if ( b > c)
{
cout << "第二隻小豬最重,體重為:" << b << endl;
}
// 如果 b 沒 c 重,那麼 c 最重
else
{
cout << "第三隻小豬最重,體重為:" << c << endl;
}
}
// 如果 a 和 b 一樣重,那麼 a 和 c 比
else
{
// 如果 a 比 c 重,那麼 a 和 b 最重
if (a > c)
{
cout << "第一隻和第二隻小豬最重,體重為:" << a << endl;
}
// 如果 a 沒 c 重,那麼 c 最重
else if (a < c)
{
cout << "第三隻小豬最重,體重為:" << c << endl;
}
// 如果 a 和 c 一樣重,那麼 a,b, c 一樣重
else
{
cout << "三隻小豬一樣重,體重為:" << c << endl;
}
}
system("pause");
return 0;
}