1. 程式人生 > 其它 >C++ 程式流程結構--選擇結構---if語句

C++ 程式流程結構--選擇結構---if語句

4 程式流程結構

C/C++ 支援最基本的三種程式執行結構:順序結構、選擇結構、迴圈結構

  • 順序結構:程式順序執行,不傳送跳轉
  • 選擇結構:依據條件是否滿足,有選擇的執行相應功能
  • 迴圈結構:依據條件是否滿足,迴圈多次執行某段程式碼

4.1 選擇結構

4.1.1 if語句

作用:執行滿足條件的語句

if 語句的三種形式

  • 單行格式 if 語句
  • 多行格式 if 語句
  • 多條件的 if 語句
  1. 單行格式 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 條件表示式後不要加分號

  1. 多行格式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;
}
  1. 多條件的 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;
}