【C語言】--分支和循環(1)

🍿個人主頁: 起名字真南
🧇個人專欄:【數據結構初階】 【C語言】

請添加圖片描述

目錄

  • 前言
  • 1 if 語句
    • 1.1 if
    • 1.2 else
    • 1.3 嵌套if
    • 1.4 懸空else

前言

C語言是結構化的程序設計語言,這里的結構指的是順序結構、選擇結構、循環結構
我們可以用if、switch實現分支結構,for、while、do while實現循環結構。

1 if 語句

1.1 if

	if(表達式){語句}

表達式成立(為真),則執行語句,表達式不成立(為假),則語句不執行。
在C語言中 0 表示假,非 0 表示真。

例子:輸入一個整數判斷是否為偶數

#include<stdio.h>int main()
{int num = 26;if (num % 2 == 0){printf("偶數");}return 0;
}

在這里插入圖片描述

1.2 else

else語句一般是和if語句一起使用

	if(表達式){語句一}else{語句二}

上面的示例表示如果表達式成立則執行語句一,如果條件不成立則執行語句二。
一個if只對應一個else
例子:輸入一個整數判斷是奇數則輸出奇數,不是則輸出偶數。

#include<stdio.h>int main()
{int num = 0;scanf("%d", &num);if (num % 2 == 0){printf("偶數");}else{printf("奇數");}return 0;
}

if 和 else 都只能控制一條語句,如果想控制多條語句需要使用 { } 包含。

1.3 嵌套if

在 if else 語句中,else 可以與 另一個if 語句連用,構成多重判斷。
例子:要求輸入一個整數判斷是整數,負數,還是 0.

#include<stdio.h>int main()
{int num = 0;scanf("%d", &num);if (num >  0){printf("正數");}else if (num < 0){printf("負數");}else{printf("0");}return 0;
}

在這里插入圖片描述
被紅色包圍在內的代碼就是嵌套在 else 子句中的,構成了嵌套 if 語句

1.4 懸空else

如果有多個 if else 語句,如果我們分不清那兩個是互相匹配的可以記住這句話:else 總是和最近的 if 匹配

例子:判斷輸出內容

int main()
{int a = 0;int b = 2;if (a == 1)if (b == 2)printf("hehe\n");elseprintf("haha\n");return 0;
}

如果第一次接觸代碼可能會認為 b==2 成立所以輸出hehe。或者因為 a不等于1 則輸出 haha。但是結果是什么都沒有輸出。
這就是懸空else問題:>如果有多個 if 和 else ,可以記住這樣一條規則:else 總是跟最近的 if 匹配。
上面的排版問題可能會認為else 和第一個對齊所以和第一個else匹配,讓我們想到如果第一個if的條件不成立就會執行else然后執行haha這條語句。但實際上else是和第二個if匹配的,這樣后面的if else語句都是嵌套在第一個if 語句中的,因為第一個語句不成立所以什么都不執行。
將上面的代碼進行修改后會更容易理解

int main()
{int a = 0;int b = 2;if (a == 1){if (b == 2)printf("hehe\n");elseprintf("haha\n");}return 0;
}

如果我們希望else和第一個if匹配也可以這樣改

int main()
{int a = 0;int b = 2;if (a == 1){if (b == 2)printf("hehe\n");}else{printf("haha\n");}return 0;
}

只要加上了大括號就可以是代碼的邏輯變得更加清晰,增加代碼的可讀性,所以為了培養成一個好習慣建議大家平常多注意添加大括號。

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

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

相關文章

vue2實例實現一個初步的vuex

vue2實例實現一個初步的vuex 實現源碼&#xff1a;vue2-review 1.App.vue 2.store目錄下的index.js 3.效果 微信公眾號&#xff1a;刺頭拾年

MATLAB的.m文件與Python的.py文件:比較與互參

simulink MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參相似之處**1. 基本結構****2. 執行邏輯****3. 可讀性和維護性** 差異性**1. 語法特性****2. 性能和應用****3. 開發環境** 互相學習的可能性結論 MATLAB的.m文件與Python的.py文件&#xff1a;比較與互參 在編…

擴展閱讀:什么是中斷

如果用一句話概括操作系統的原理,那就是:整個操作系統就是一個中斷驅動的死循環,用最簡單的代碼解釋如下: while(true){doNothing(); } 其他所有事情都是由操作系統提前注冊的中斷機制和其對應的中斷處理函數完成的。我們點擊一下鼠標,敲擊一下鍵盤,執行一個程序,…

重生之我要學后端100--計算機網絡部分概念(持續更新)

TCP/IP、DNS、負載均衡器等等 前言一、TCP/IP&#xff08;傳輸控制協議/互聯網協議&#xff09;二、DNS&#xff08;域名系統&#xff09;三、負載均衡器其他網絡概念 前言 了解網絡基礎知識對于后端開發者至關重要&#xff0c;因為這些知識有助于理解應用程序是如何在更廣闊的…

中英雙語介紹美國的州:麻省,馬塞諸塞州(Massachusetts)

中文版 馬薩諸塞州&#xff08;Massachusetts&#xff09;位于美國東北部的新英格蘭地區&#xff0c;是美國歷史最悠久、文化最豐富的州之一。以下是對馬薩諸塞州各方面的詳細介紹&#xff1a; 人口 截至2020年&#xff0c;美國人口普查數據顯示&#xff0c;馬薩諸塞州的人口…

C++ 之運算符

作用&#xff1a;用于執行代碼的運算 主要的運算符類型&#xff1a; 運算符類型作用算術運算符用于處理四則運算賦值運算符用于將表達式的值賦給變量比較運算符用于表達式的比較&#xff0c;并返回一個真值或假植邏輯運算符用于根據表達式的值返回真值或假植 1 算術運算符 …

Spring MVC中的DispatcherServlet、HandlerMapping和ViewResolver的作用

在Spring MVC框架中&#xff0c;DispatcherServlet、HandlerMapping和ViewResolver是核心組件&#xff0c;它們各自承擔著不同的角色和任務&#xff1a; 1.DispatcherServlet&#xff1a;它是Spring MVC生命周期中的前端控制器&#xff0c;負責接收HTTP請求并將它們分發給相應的…

5.x86游戲實戰-CE定位基地址

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;4.x86游戲實戰-人物狀態標志位 上一個內容通過CE未知的初始值、未變動的數值、…

機器學習SVR 隨機森林 RBF神經網絡做回歸預測的MATLAB代碼

SVR 參考這篇文章 Libsvm使用筆記【matlab】 close all; clc clear %% 下載數據 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 數據歸一化 %輸入樣本歸一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…

設置用戶訪問hdfs

如果hadoop沒有啟Kerberos或者從Kerberos獲取的用戶為null&#xff0c;那么獲取HADOOP_USER_NAME環境變量&#xff0c;并將它的值作為Hadoop執行用戶。如果我們沒有設置HADOOP_USER_NAME環境變量&#xff0c;那么程序將調用whoami來獲取當前用戶&#xff0c;并用groups來獲取用…

JVM相關總結

JVM的些許問題 1.JVM內存區域劃分 2.JVM類加載過程 3.JVM的垃圾回收機制 1.JVM的內存區域劃分 一個運行起來的Java進程就是一個JVM虛擬機,需要從操作系統申請一大片內存,就會把內存劃分成幾個區域,每個區域都有不同的作用 常見的面試題 2.JVM類加載過程 熟練背誦 ! ! !…

printf內幕----編程內幕(1)

曾幾何時&#xff0c;您有沒有在夜深人靜的時候想過一個問題&#xff0c;printf內部究竟做了什么&#xff1f;為何可以輸出到屏幕上顯示出來&#xff1f; 先看看這段熟悉的代碼&#xff1a; // // Created by xi.chen on 2017/9/2. // Copyright © 2017 All rights rese…

WordPress中文網址導航欄主題風格模版HaoWa

模板介紹 WordPress響應式網站中文網址導航欄主題風格模版HaoWa1.3.1源碼 HaoWA主題風格除行為主體導航欄目錄外&#xff0c;對主題風格需要的小控制模塊都開展了敞開式的HTML在線編輯器方式的作用配備&#xff0c;另外預埋出默認設置的編碼構造&#xff0c;便捷大伙兒在目前…

入門JavaWeb之 JDBC 連接數據庫

JDBC&#xff1a;Java Database Connectivity&#xff0c;Java 數據庫連接 需要 jar 包支持&#xff1a; java.sql javax.sql mysql-connector-java&#xff08;連接驅動&#xff0c;必須導入&#xff09; 在 MySQL 先建個 jdbc 數據庫后 USE jdbc; 執行后再 CREATE TABLE…

15- 22題聚合函數 - 高頻 SQL 50 題基礎版

目錄 1. 相關知識點2. 例子2.15 - 有趣的電影2.16 - 平均售價2.17 - 項目員工 I2.18 - 各賽事的用戶注冊率2.19 - 查詢結果的質量和占比2.20 - 每月交易 I2.21 - 即時食物配送 II2.22 - 游戲玩法分析 IV 1. 相關知識點 函數 函數含義order by排序group by分組between 小值 an…

Chrome備份數據

Chrome備份數據 1、 導出谷歌瀏覽器里的歷史記錄 參考&#xff1a;https://blog.csdn.net/qq_32824605/article/details/127504219 在資源管理器中找到History文件&#xff0c;文件路徑&#xff1a; C:\Users\你的電腦用戶名\AppData\Local\Google\Chrome\User Data\Default …

堆排序思想分享

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

丟失的數字(MissNumber)

丟失的數字 給定一個包含 [0, n] 中 n 個數的數組 nums &#xff0c;找出 [0, n] 這個范圍內沒有出現在數組中的那個數。 示例 1&#xff1a; 輸入&#xff1a;nums [3,0,1] 輸出&#xff1a;2 解釋&#xff1a;n 3&#xff0c;因為有 3 個數字&#xff0c;所以所有的數字都…

五、Pentium 微處理器保護模式存儲管理,《微機系統》第一版,趙宏偉

一、分段存儲管理 Pentium支持分段存儲管理、分頁存儲管理和段頁式存儲管理。 1.1 分段存儲管理的基本思想 一個程序由多個模塊組成。 每一個模塊都是一個特定功能的獨立的程序段。 段式管理&#xff1a;把主存按段分配的存儲管理方式。 程序模塊→段→段描述符→段描述符…

【設計】在Java后端開發時使用JSONObject完全替代JAVABean(DTO,VO)是否可行?

其實這樣做你是得不償失&#xff0c;不過也要看什么項目&#xff0c;如果你的項目只在只需要實現功能&#xff0c;不在乎健壯性&#xff0c;可持續性那就完全可以。因為我現在公司老項目所有用的POJO的地方都是用JSONObject。代碼可讀性幾乎為0。你用了可能喪失以下功能&#x…