第三章:分支結構

第一節:條件判斷語句

世間萬物是變幻莫測的,對於發生的不同情況,會有着不同的結果,在C++程序設計的過程中,常常需要對發生的不同情況進行判斷,這就需要使用分支的方法,解決問題

例:計算時間差
輸入兩個時間,每個時間分別輸入小時和分鐘的值,然後輸出兩個時間之間的差,也以幾小時幾分表示
在這裏插入圖片描述

int hour1 = 1 , minute1 = 40;
int hour2 = 2 , minute2 = 10;
cout << "第一個時間是:" << hour1 << "小時" << minute1 <<"分" << endl;
cout << "第二個時間是:" << hour2 << "小時" << minute2 <<"分" << endl;
cout << "時間差是:" << hour2-hour1 << "小時" << minute2-minute1 <<"分" << endl;

執行結果:
在這裏插入圖片描述

如果 …

對於可能發生的事情,經常會使用“如果…就…”,如果之後的內容稱爲條件,如果條件滿足,就做“就…”之後的事情。在程序設計中,也是用同樣的方法來描述可能發生的情況的。
 
【語法格式】
if ( 條件成立 ) {
       語句 1 ;
       語句 2 ;
        ... ...
}

例:

int hour1 = 1 , minute1 = 40;
int hour2 = 2 , minute2 = 10;
cout << "第一個時間是:" << hour1 << "小時" << minute1 <<"分" << endl;
cout << "第二個時間是:" << hour2 << "小時" << minute2 <<"分" << endl;

//對時和分進行計算 
int h = hour2 - hour1;
int m = minute2 - minute1;

//判斷出現負數的情況 
if (m<0){
	m = 60 + m;
	h = h - 1;
}

cout << "時間差是:" << h << "小時" << m <<"分" << endl;

執行結果:
在這裏插入圖片描述

關係操作(運算)符

當判斷一個條件時,後面的內容執不執行,完全取決於if語句條件是否得到滿足,即條件的“真”與“假”。這就需要更多的能判斷真假的內容,即關係運算。
計算兩個值之間的關係,所以叫做關係運算

在這裏插入圖片描述
注意:== 和 = 是兩個不同的操作符, == 是判斷操作符兩邊數據的關係,是真正的等於,而 = 則是把右邊的內容(結果)給左邊,是賦值

【關係運算的結果】
當關系操作(運算)符兩邊的數據符合操作符對應的關係時,結果爲真(1),否則爲假(0)。

例:

	// 輸出5大於3的結果
	cout << (5 > 3) << endl ;
	
	// 輸出8小於等於1的結果
	cout << (8 <= 1) << endl ;
	
	int a = 10;
	int b = 4;
	cout << ( a < b ) << endl ;

執行結果:
在這裏插入圖片描述

例:項目挑戰——找零計算器
在這裏插入圖片描述

// 定義變量 
int price;
int total;
// 讀入金額和麪額 
cout << "應收金額(元):" ;
cin >> price;
cout << "實收面額(元):" ;
cin >> total;
// 計算找零 
int change = total - price;
cout << "應找零" << change << "元" << endl;

執行結果:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
例2:找零計算器02

// 定義變量 
int price;
int total;
// 讀入金額和麪額 
cout << "應收金額(元):" ;
cin >> price;
cout << "實收面額(元):" ;
cin >> total;
// 計算找零 
if (total >= price){
	int change = total - price;
	cout << "應找零" << change << "元" << endl; 
}
cout << "很抱歉,您的錢不夠!" << endl;

執行結果:
在這裏插入圖片描述

【操作結果】
如果在if後面還有語句,它們在if結束後會執行,無論條件如何

如果 … 否則 …

在這裏插入圖片描述

【語法格式】
 
if ( 條件成立 ) {
      語句 1 ;
      語句 2 ;
      ... ...
}else{
      語句1 ;
      語句2 ;
      ... ...
}

例:

int weather = 5;
if(weather==1){
	cout << "今天去游泳" << endl; 
}else{
	cout << "今天我只想躺着" <<endl;
}

執行結果:
在這裏插入圖片描述
例:找零計算器03

// 定義變量 
int price;
int total;
// 讀入金額和麪額 
cout << "應收金額(元):" ;
cin >> price;
cout << "實收面額(元):" ;
cin >> total;
// 計算找零 
if (total >= price){
    int change = total - price;
    cout << "應找零" << change << "元" << endl; 
}else{
    cout << "很抱歉,您的錢不夠!" << endl;
} 

在這裏插入圖片描述

【練習】
1、比較大小
提示用戶輸入兩個整數,使用條件判斷語句比較兩個數的大小,輸出大的數
 
2、判斷成績
提示用戶輸入考試成績,使用條件判斷語句,判斷用戶是否及格

例:項目挑戰 —— 猜數字遊戲

#include<iostream>
#include<cstdlib>   // 與獲取隨機數有關,暫不研究  
#include<ctime>     // 與獲取隨機數有關,暫不研究 
using namespace std;
int main(){	
	srand((unsigned int)time(NULL));  // 與獲取隨機數有關,暫不研究
	int ans = rand()%5+1,input;       // 與獲取隨機數有關,暫不研究
	cout << "請猜一個數(1-6):";
	cin >> input;
	
	// 如果輸入的數與隨機數相同,則輸出 "猜對" 
	if(input == ans){
		cout << "恭喜,猜對啦!請到前臺領取100萬" <<endl;
		return 0;      //---------------------------------結束程序 
	}
	cout << "猜錯了,還有兩次機會!" << endl;
	
	// 第二次猜
	cout << "請再猜一個數(1-6):";
	cin >> input;
	if(input == ans){
		cout << "恭喜,猜對啦!請到前臺領取50萬" <<endl;
		return 0;
	}
	cout << "猜錯了,只剩一次機會了!" << endl;
	
	// 第三次猜
	cout << "請再猜一個數(1-6):";
	cin >> input;
	if(input == ans){
		cout << "恭喜,猜對啦!請到前臺領取10萬" <<endl;
		return 0;
	}
	cout << "猜錯了,答案是:" << ans << endl;
	
	return 0;
}

執行結果:
在這裏插入圖片描述

邏緝操作符與邏緝運算

1、邏緝操作符
在這裏插入圖片描述

現實生活中,有些條件會很嚴格,要數項同時條件滿足纔算符合條件,在程序設計中,除了“大於”、“小於”、“等於”之外,往往還會用“與”、“或”、“非”、來進行表達

在這裏插入圖片描述
例:劃分成績區段

cout << "請輸入成績(0-100):";
cin >> mark;
if (mark>=80 && mark<=100)  cout << "優秀" << endl;
if (mark>=60 && mark<80)  cout << "及格" << endl;
if (mark>=0 && mark<60)  cout << "不及格" << endl;
if (mark<00|| mark>100)  cout << "分數錯誤" << endl;

執行結果;
在這裏插入圖片描述
2、邏緝運算
例:

int a = 3;
int b = 5;
int c = 7;
cout << (a<b && b<c) <<endl;
cout << (a>b && b<c) <<endl;
cout << (a<b || b>c) <<endl;

邏輯運算是對邏輯量進行的運算,結果只有0或1

在這裏插入圖片描述
在這裏插入圖片描述

三目運算符

隨着程序越來越複雜多樣,在代碼中會出現越來越多的if語句。有時候其實只需要計算機做一個簡單的判斷就可以了,卻不得不寫佔據多行的if語句,例如:兩個數之間比大小。因此C++提供了另一種特殊的操作符,只用一個問號來判斷一個條件。
 
【格式】
(條件表達式)?(條件爲真時的表達式):(條件爲假時的表達式)
“?” —— 稱爲條件操作符,含用?的表達叫條件表達式
 
注:條件表達式的結果需要聲明一個變量進行接收,或者直接用cout輸出

例:比較兩個數的大小

int a,b;
cout << "請輸入兩個數:"<< endl;
cin >> a >> b;
if (a>b){  
	cout << "較大的數是:"<< a << endl;
}
if (a<b){
	cout << "較大的數是:"<< b << endl;
}

使用三目運算

int a,b,max;
cout << "請輸入兩個數:"<< endl;
cin >> a >> b;
//如a大於等於b,則a的值放到max中,否則就把b值放到max中
max = (a>b) ? a:b;
cout << "較大的數是:"<< max << endl;

在這裏插入圖片描述

【練習】
把下列自然語言描述的條件轉化爲邏緝運算和關係運算描述的條件,每小題至少寫出兩種
 
1、變量a不小於變量b
例:a>=b !(a<b)
2、變量a加上變量b之後再乘以變量c,得到的結果不爲零
 
3、當變量a等於1時,變量b大於1;當變量a不等於1時,變量c大於1
 
4、當變量b不等於0時,變量a除以變量b大於3
 
5、變量b大於等於變量a並且變量b小於變量a

if語句嵌套

if語句的主要功能是給程序提供一個分支。然而,有時候程序中僅僅多一個分支是遠遠不夠的,甚至有時候程序的分支會很複雜,有可能在分支裏還有分支。這種在語句的內部多次使用同一種語句的現象叫嵌套
例:

int a,b,c;
cout << "請輸入第一個整數:";
cin<<a;
cout << "請輸入第二個整數:";
cin<<b;
cout << "請輸入第三個整數:";
cin<<c;
if(a>b&&a>c){
    cout << "大的那個是:"<<a<<endl; 
}
if(b>c&&b>a){
    cout << "大的那個是:"<<b<<endl; 
}
if(c>a&&c>b){
    cout << "大的那個是:"<<c<<endl; 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章