07C++選擇結構(1)

gdyyx發表於2024-11-08

一、基礎知識

1、關係運算子

因為我們要對條件進行判斷,必然會用到關係運算子:

名稱 大於 大於等於 小於 小於等於 等於 不等於
符號 > >= < <= == !=

關係表示式的值是一個邏輯值,即“真”(True)或“假”(False)。如果條件成立,其值為“真”;如果條件不成立,其值為“假”。

2、邏輯運算子

基本運算 運算子號 舉例 結果
!(1<2) False
&& 3<4 && 4>5 False
ll 3<4 ll 4>5 True

注:
1)”與”運算中,只有”與”兩邊的表示式都成立,結果才為True,只要兩邊的表示式中有一個不成立的,結果為False.
2)”或”運算中,只要表示式兩邊的有一個成立,結果就為True;若兩邊的表示式均不成立,則結果為False.

3、程式流程圖的基本符號


二、if語句

教學影片A
if語句格式:if(表示式){ 語句塊1 } | if(表示式)語句1;


例程:試編一程式,輸入一 個200以內的整數作為IQ值,判斷是不是天才。

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    int iq;
    cout<<"IQ:";
    cin>>ip ;
    if (iq>140) cout<<"天才!";
    return 0;
 }

練習:

(1)下列表示式的值為“真”的是( )。

    A.7%2==0      B.'a'>'0'     C.99<60     D.0

(2)閱讀程式寫X的結果。

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    int x;
    cin>>x;
    if (x>100) x-=10;
    cout<<x;
    return 0;
 }

輸入:110
輸出:_______
(3)完善第12、13行程式。
輸入一個整數,判斷是不是偶數,若是就輸出“偶數”。

 6 #include <iostream>    //包含輸入輸出流標頭檔案iostream 
 7 using namespace std;    //指明程式 使用名稱空間std(標準) 
 8 int main()
 9 {
10     int n;
11     cout<<"請輸入一個整數:";
12                ;
13     if (    ) cout<<"偶數";    //除2餘0,就是偶數。 
14     return 0; 
15  }  

三、if-else 語句

教學影片A
格式:

流程圖:

例程:

試編一程式,輸入一分鐘跳繩的次數,若大於等於200次,輸出“跳繩達人!”,否則輸出“繼續努力!”。
流程圖:

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    int n;
    cout<<"請輸入1分鐘跳繩次數:";
    cin>>n;
    if (n>=200)
        cout<<"跳繩達人!";
    else
        cout<<"繼續努力!";
    return 0;
 }

練習:

(1)下列中合法的關係表示式是( )。

   A.'a'<99       B.23.5!<20       C.12<>56        D.5<2X<14

(2)閱讀程式寫結果。

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    int x;
    cin>>x;
    if (x==10)
        x++;
    else
        x--;
    cout<<"x="<<x<<endl;
    return 0;
 }

輸入:10
輸出x為:__________
(3)完善第10、13行程式。。
輸入一個整數,判斷其奇偶。如輸入24,輸出“偶數”,輸入25,輸出“奇數”。

 6 #include <iostream>    //包含輸入輸出流標頭檔案iostream 
 7 using namespace std;    //指明程式 使用名稱空間std(標準) 
 8 int main()
 9 {
10           ;
11     cout<<"請輸入一個整數:";
12     cin>>n;
13     if (  )    //除2餘0,就是偶數;否則為奇數。 
14         cout<<n<<"是偶數";
15     else
16         cout<<n<<"是奇數";
17     return 0; 
18  }  

四、if語句巢狀

教學影片A

在if語句中又包含一個或多個if語句,稱為if語句巢狀


if與else的就近匹配原則:

幾種巢狀樣式:


例程:

試編寫一個模擬“比爾莊園”登入的程式,輸入正確的使用者名稱和密碼後,輸出歡迎語句“親愛的小朋友,歡迎你!”,否則輸出“使用者名稱錯誤!”或“密碼錯誤!”。
假設使用者名稱和密碼均為六位數,如使用者名稱:201701,密碼:135790。流程圖如下:

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    const int USER=201701,PSW=135790;
    int user,psw;
    cout<<"使用者名稱:";
    cin>>user;
    cout<<"密碼:";
    cin>>psw;
    if (user==USER)
        if(psw==PSW)
            cout<<"親愛的小朋友,歡迎你!";
        else
            cout<<"密碼錯誤!";
    else
        cout<<"使用者名稱錯誤!";
    return 0;
 }

注:在定義變數時,如果加上關鍵字const,則變數的值在程式執行期間不能改變,這種變數稱為常變數,在c++中常變數又稱為只讀變數。

使用常變數好處:
(1)修改方便,無論程式中出現多少次常變數,只要在定義語句中對定義的常變數值進行一次修改,就可以全改。
(2)可讀性強,常變數通常具有明確的含義。有時為了區別常變數和變數,程式中會把常變數名用大寫字母表示。如上面程式。

練習:

(1)閱讀程式寫結果。

#include <iostream>    //包含輸入輸出流標頭檔案iostream
using namespace std;    //指明程式 使用名稱空間std(標準)
int main()
{
    int x,y=0;
    cin>>x;
    if (x<10) y=1;
    else if(x<100) y=2;
        else y=3;
    cout<<y;
    return 0;
 }

輸入:10
變數x、y輸出分別為:
(2)完善第14、16行程式。
輸入一個整數,若大於零。則輸出“正數”;若等於零,則輸出“零”;若小於零,則輸出“負數”。

 7 #include <iostream>    //包含輸入輸出流標頭檔案iostream 
 8 using namespace std;    //指明程式 使用名稱空間std(標準) 
 9 int main()
10 {
11     float x;    //浮點數 
12     cout<<"x=";
13     cin>>x;
14     if (    )    //若x等於零,輸出“零”。 
15         cout<<"零";
16     else if (   )
17             cout<<"正數";
18         else
19             cout<<"負數";
20     return 0; 
21  }  

五、字串型別string

字串是夾在兩個雙撇號之間的一串字元,其字元個數可以是零個、一個或多個。如""、"a"、"Apple"、"312"、"apple311"等都是字串。
要注意:
(1) ""(空串,零個字元)也是字串。"a"是字串,而'a'是字元。
(2) string不是C++語言本身具有的基本型別,使用時必須引入標頭檔案string,見下例。
下面程式碼展示瞭如何在C++中使用std::string進行基本的字串操作,包括建立字串、連線字串、獲取字串長度、比較字串、查詢字串和替換字串的一部分。

#include <iostream>
#include <string>
 
int main() {
    std::string str1 = "Hello";
    std::string str2 = "World";
 
    // 字串連線
    str1 += " ";
    str1 += str2;
 
    // 輸出字串
    std::cout << str1 << std::endl; // 輸出: Hello World
 
    // 獲取字串長度
    std::cout << "Length: " << str1.length() << std::endl; // 輸出: Length: 11
 
    // 字串比較
    if (str1 == "Hello World") {
        std::cout << "Strings are equal." << std::endl; // 輸出: Strings are equal.
    }
 
    // 字串查詢
    if (str1.find("World") != std::string::npos) {
        std::cout << "Found 'World' in the string." << std::endl; // 輸出: Found 'World' in the string.
    }
 
    // 字串替換
    str1.replace(6, 5, "C++");
    std::cout << str1 << std::endl; // 輸出: Hello C++
 
    return 0;
}

擴充套件閱讀:

(1)C++字串
(2)C語言和C++中的字串(string)
(3)C++中的字元編碼方式

相關文章