C++少兒編程(二十二)—條件結構

1.理解條件結構

小朋友們,今天讓我們一起來探索一個神奇而有趣的知識——程序的條件結構!

首先,讓我們來想象一個有趣的場景。比如說,你們正在準備去公園玩耍。在出發之前,你們會看看天氣怎么樣。如果天氣晴朗,陽光明媚,那太棒啦,我們就可以開開心心地去公園玩滑梯、蕩秋千;但是,如果天上下起了大雨,那我們可能就得改變計劃,留在家里玩玩具或者看動畫片。

在計算機程序的世界里,也有這樣類似的“做決定”的過程,這就是我們所說的條件結構。

條件結構就像是一個聰明的小裁判,它會根據我們設定的一些條件,來決定程序接下來要怎么做。

假設我們正在編寫一個小游戲程序,游戲里有一個角色要通過一些關卡。如果這個角色的生命值大于 50,它就能繼續前進,去挑戰更難的關卡;但如果生命值小于或者等于 50,程序就會讓角色停下來休息一會兒,恢復生命值。

再比如,我們有一個計算零花錢的小程序。如果這個月你表現得很好,幫忙做家務了,爸爸媽媽可能會多給你 10 塊錢零花錢;如果沒有好好表現,那就只能拿到原本的零花錢。

那程序是怎么知道該做出哪種決定的呢?這就需要我們給它設定一些明確的條件和規則。就好像我們知道晴天可以出去玩,雨天要待在家里一樣。

比如說,我們可以告訴程序:“如果輸入的數字是奇數,就顯示‘這是個奇數’;如果輸入的數字是偶數,就顯示‘這是個偶數’。”然后,當我們向程序輸入一個數字,比如 7 時,程序會判斷 7 是奇數,然后按照我們設定的條件,顯示出“這是個奇數”。

小朋友們,條件結構在我們的生活中也有很多類似的例子哦。比如在學校里,如果考試成績達到 90 分以上,老師會給你一個小獎勵;如果沒有達到,可能就需要更加努力學習啦。

當程序員們編寫程序的時候,他們會使用一些特定的語言和符號來告訴計算機這些條件和規則。就像我們用語言跟小伙伴交流一樣,程序員用特殊的“語言”跟計算機交流。

通過條件結構,程序可以變得更加聰明和靈活,能夠根據不同的情況做出不同的反應,為我們完成各種各樣有趣和有用的任務。

2. if條件結構

在C++中,if語句是決策語句的最簡單形式。它用于確定是否將基于條件語句執行語句塊。該條件只有兩個布爾值/結果,即true或false。

如果If語句中的條件為true,則執行大括號內的代碼塊。如果條件計算結果為false,我們將移動到if塊之后的代碼行。如果If語句之后沒有大括號{},則只考慮If塊內的第一個語句。

語法結構:

if (條件語句){

// 上述條件為true時所執行的代碼段

}

流程圖:

-if關鍵字標記if語句的開始/起始。

-(條件)是指我們正在驗證的條件。

-大括號{}包含條件代碼,如果條件得到滿足,將執行該代碼。

3.if-else條件結構

??if (條件語句){

??// 上述條件為true時所執行的代碼段

??}else{

??// 上述條件為false時所執行的代碼段

??}

??執行 if 正文中的代碼,else 正文中的代碼從執行中跳過

??執行 else 正文中的代碼,從執行中跳過 if 正文中的代碼

  1. 如果條件的計算結果為 true,

  2. 如果條件的計算結果為 false,

對應的流程圖:

例子:

#include <iostream>using namespace std;int main () {int a = 100;if( a < 20 ) {cout << "a 比 20小;" << endl;} else {cout << "a 不比 20小;" << endl;}cout << "a 的值是 : " << a << endl;return 0;}

4.可嵌套的if-else if-else

?if (條件語句){

??// 上述條件為true時所執行的代碼段

??}else if (條件語句1) {

??// 上述條件語句1為true時所執行的代碼段

??}else{

??//

??}

? a.如果條件語句的計算結果為 true,

??執行 if 正文中的代碼,else 則執行條件語句1

?b.如果條件語句1的計算結果為 true,

??執行 else if 正文中的代碼,從執行中跳過 else 正文中的代碼

?c.如果條件語句1的計算結果為 false,則執行else里的代碼

對應的流程圖:

5. if-else條件結構的簡寫運算符?:

認識?:運算符

?: 這個運算符有

今天我們來學習一個在編程里很有趣的東西,叫做 ?: 運算符。

?: 運算符也被稱為條件運算符,它就像一個聰明的小裁判,可以根據一個條件來決定給出什么樣的結果。

比如說,我們有兩個數字,一個是 5,一個是 10。然后我們設定一個條件,如果 10 比 5 大, 那么就輸出“1”,否則就輸出“0”。

c=a>b?1:0

對應的if-else語句是

if(a>b)

????????c=1;

else

????????c=0;

咱們可以把 switch case 想象成一個超級聰明的機器人,它能根據我們給它的一個數字或者一個字符,做出不同的反應。

比如說,我們有一個數字,就像我們給機器人的一個小秘密。然后在 switch 后面寫上這個數字。

接下來,有很多個 case ,就像是給機器人的不同指令。

比如 case 1case 2case 3 等等。

當我們給機器人的數字和某個 case 后面的數字一樣的時候,機器人就會按照這個 case 后面的要求去做事。

在這個例子里,我們給的數字是 2 ,所以機器人就會執行 case 2 后面的內容,在屏幕上顯示“這是 2”。

int num = 2;switch (num) {case 1:std::cout << "這是 1" << std::endl;break;case 2:std::cout << "這是 2" << std::endl;break;case 3:std::cout << "這是 3" << std::endl;break;default:std::cout << "不知道這是幾" << std::endl;}

還有哦,如果我們不想讓機器人在執行完一個 case 后繼續執行下面的 case ,就要在每個 case 后面加上 break ,就像給機器人一個停止的命令。

語句結構:

switch (條件變量)  {
case 條件值1://符合條件值1的執行代碼塊;break;
case 條件值2:// 符合條件值1的執行代碼塊;break;...default:// 都不符合的執行代碼塊;
}

如果存在匹配,則執行匹配條件值后的相應代碼。例如,如果變量的值等于條件值1,則執行條件1:之后的代碼,直到遇到break語句。break的意思就是跳出swich-case的條件結構,執行以后的代碼.

如果不匹配,則執行default:之后的代碼

流程圖:

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/bicheng/93431.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93431.shtml
    英文地址,請注明出處:http://en.pswp.cn/bicheng/93431.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    Ubuntu20.04下Px4使用UORB發布消息

    1 .msg文件夾定義數據類型及 變量名文件位置如圖&#xff0c;在PX4-Autopilot/msg文件夾下&#xff0c;筆者創建的文件名為gps_msg.msggps_msg.msg內容如下 uint64 timestamp # 時間戳 float32 latitude float32 longitude float32 altitude 同時&#xff0c;在CM…

    three.js學習記錄(第二節:鼠標控制相機移動)

    效果展示&#xff1a; 鼠標控制一、鼠標控制 - 軌道控制器&#xff08;OrbitControls&#xff09; 1. 從nodeModules中導入OrbitControls&#xff0c;OrbitControls 是一個附加組件&#xff0c;必須顯式導入 import { OrbitControls } from "three/examples/jsm/controls/…

    Shortest Routes II(Floyd最短路)

    題目描述There are n cities and m roads between them. Your task is to process q queries where you have to determine the length of the shortest route between two given cities.輸入The first input line has three integers n, m and q: the number of cities, roads…

    分享一個基于Hadoop的二手房銷售簽約數據分析與可視化系統,基于Python可視化的二手房銷售數據分析平臺

    &#x1f495;&#x1f495;作者&#xff1a;計算機源碼社 &#x1f495;&#x1f495;個人簡介&#xff1a;本人八年開發經驗&#xff0c;擅長Java、Python、PHP、.NET、Node.js、Spark、hadoop、Android、微信小程序、爬蟲、大數據、機器學習等&#xff0c;大家有這一塊的問題…

    STM32的PWM

    PWM作為硬件中幾乎不可或缺的存在&#xff0c;學會 PWM&#xff0c;等于打通了 STM32 的“定時器體系”。學一次&#xff0c;STM32 全系列&#xff08;甚至 AVR、PIC、ESP32&#xff09;都能通用。硬件只要一個 I/O 就能驅動功率模塊&#xff0c;非常省成本。不會 PWM&#xff…

    OpenCompass傻瓜式入門教程

    文章目錄1 我也許不是傻瓜&#xff0c;卻只想做個傻瓜2 環境要求3 安裝3.1 下載源碼3.2 創建虛擬環境3.3 安裝4 下載數據5 查看支持的模型和數據集6 評測6.1 指定模型路徑6.2 指定配置文件6.2.1 評測本地qwen2.5模型6.2.1.1 查看opencompass支持的qwen2.5模型6.2.1.2 創建配置文…

    【軟件測試】電商購物項目-各個測試點整理(三)

    目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 1、優惠券的測試點…

    流處理、實時分析與RAG驅動的Python ETL框架:構建智能數據管道(上)

    > **2025年某電商大促,每秒20萬訂單涌入系統**——他們的風控團隊僅用**47毫秒**就識別出欺詐交易。背后的秘密武器,正是融合流處理、實時分析與RAG的下一代Python ETL框架。 ### 一、范式革命:從批處理到AI增強的ETL 4.0 #### 1.1 數據處理演進史 ```mermaid graph LR …

    開源 Arkts 鴻蒙應用 開發(十五)自定義繪圖控件--儀表盤

    文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發app&#xff0c;臨時學習&#xff0c;完成app的開發。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 相關鏈接&#xff1a; 開源 Arkts …

    ???????中國工業企業專利及引用被引用數據說明

    1319 中國工業企業專利及引用被引用數據說明數據簡介專利近年發文趨勢及主題分布今天數據皮皮俠團隊為大家分享一份2023年12月25日最新更新的中國工業企業專利及引用被引用數據&#xff0c;供大家研究使用。數據來源原始數據來源于國家統計局&#xff0c;由皮皮俠團隊整理計算。…

    MySQL知識點(上)

    MySQL知識點 一&#xff1a;MySQL概述 MySQL是一款開源的數據庫軟件&#xff0c;是一種關系型數據庫管理系統&#xff08;ROBMS&#xff09;&#xff0c;也叫做表數據庫管理系統 如果需要快速安全地處理大量的數據&#xff0c;則必須使用數據庫管理系統&#xff1b;任何基于數據…

    shell腳本實現sha256sum校驗并拷貝校驗通過的文件

    #!/bin/bash# 目標目錄 TARGET_DIR"/appdata/jn1m/versions/old/bin"# 校驗文件 CHECKSUM_FILE"checksum.txt"# 檢查目標目錄是否存在 if [ ! -d "$TARGET_DIR" ]; thenecho "錯誤&#xff1a;目標目錄 $TARGET_DIR 不存在"exit 1 fi#…

    中小型泵站物聯網智能控制系統解決方案:構建無人值守的自動化泵站體系

    一、系統核心架構與功能設計1.物聯網感知層設備互聯&#xff1a;網關對接壓力傳感器、超聲波液位計、智能電表、振動傳感器等&#xff0c;實時采集水泵運行狀態&#xff08;流量、壓力、溫度、振動&#xff09;、液位、水質&#xff08;pH值、濁度&#xff09;、能耗等關鍵參數…

    網絡通信---Axios

    1、什么是 Axios&#xff1f; Axios? 是一個基于 ?Promise? 的 ?HTTP 客戶端&#xff0c;用于瀏覽器和 Node.js 環境&#xff0c;用來發送 ?HTTP 請求&#xff08;如 GET、POST、PUT、DELETE 等&#xff09;?。 它常用于&#xff1a; 向后臺 API 發送請求獲取數據提交表…

    Ubuntu 軟件源版本不匹配導致的依賴沖突問題及解決方法

    在使用 Ubuntu 系統的過程中&#xff0c;軟件包管理是日常操作的重要部分。但有時我們會遇到各種依賴沖突問題&#xff0c;其中軟件源與系統版本不匹配是常見且棘手的一種。本文就來詳細分享一次因軟件源版本不匹配引發的依賴沖突問題&#xff0c;以及具體的解決思路和流程。一…

    思考:高速場景的行星輪混動效率如何理解

    行星輪混動 E-CVT&#xff08;電子無級變速器&#xff09;是一種專為混合動力汽車設計的動力分配系統&#xff0c;其核心原理是通過行星齒輪組和電機的協同工作&#xff0c;實現動力分流與無級變速。 一、核心結構與組成 E-CVT的核心部件包括 行星齒輪組 和 雙電機&#xff08;…

    跨域及解決方案

    跨域&#xff08;Cross-Origin&#xff09;是指瀏覽器在執行 JavaScript 的時候&#xff0c;因為同源策略&#xff08;Same-Origin Policy&#xff09;的限制&#xff0c;阻止了一個網頁去請求不同源&#xff08;域名、端口、協議有任意一個不同&#xff09;的資源。 1. 什么是…

    PCA降維全解析:從原理到實戰

    一文讀懂PCA降維&#xff1a;原理、實現與可視化全解析?本文6000字&#xff0c;涵蓋PCA核心原理、數學推導、代碼實戰及高頻面試題&#xff0c;建議收藏閱讀?一、為什么需要降維&#xff1f;數據爆炸時代的生存法則當數據集的特征維度激增&#xff08;如基因數據、推薦系統用…

    Kafka工作機制深度解析:Broker、Partition 與消費者組協作原理

    &#x1f42f; Kafka工作機制深度解析&#xff1a;Broker、Partition 與消費者組協作原理 &#x1f3c1; 前言 Kafka 已成為互聯網公司流式數據處理的事實標準&#xff0c;廣泛應用于日志收集、實時計算、事件驅動架構等場景。 很多開發者會用 Kafka&#xff0c;但不了解它底…

    深入解析live555:開源流媒體框架的技術原理與應用實踐

    引言&#xff1a;流媒體領域的"老兵"與技術基石 在實時音視頻傳輸技術的發展歷程中&#xff0c;live555作為一款誕生于1990年代末的開源項目&#xff0c;至今仍在流媒體服務器、嵌入式設備和安防監控等領域發揮著不可替代的作用。它由Live Networks公司開發并維護&a…