分支與循環

目錄

1. if語句

1)if

2)? else

3)分支中包含多條語句

4)if嵌套

2.關系操作符

3.條件操作符

4.邏輯操作符:&&? ||? !

1) 邏輯取反運算符 !?編輯

2 與運算符?編輯

3)?或運算符?編輯

4) 閏年的判斷

5)?短路


?

C語言是結構化的程序設計語言,這里的結構指的是順序結構選擇結構循環結構,C語言是能夠實現這三種結構,通過使用 if 、switch 實現分支結構,使用 for 、while 、do while 實現循環結構

1. if語句
1)if
if ( 表達式 )//表達式成立(為真)則語句執行,表達式不成立(為假)則語句不執行
{語句
}

在C語言中,0為假,非0表示真,如果表達式的結果是0則語句不執行,如果表達式的結果不是0則語句執行

輸入一個整數,判斷是否為奇數:

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

如果一個數不是奇數那就是偶數了,所以我們可以通過 if...else... 語句來表示

if ( 表達式 )語句1
else語句2

輸入一個整數,判斷是否為奇數,如果是奇數打印是奇數,否則打印數偶數

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇數\n", num);elseprintf("%d 是偶數\n", num);return 0;
}
3)分支中包含多條語句

因為if 語句只能控制一條語句,通過使用 { } 將代碼括起來,同樣else 后也可以跟上大括號

4)if嵌套

在if else 語句中, else 可以與另一個if 語句連用,構成多重判斷。
比如:要求輸入一個整數,判斷輸入的整數是0,還是正數或者負數

#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);if(num == 0)printf("輸入的數字是0\n");else if(num > 0) //這里的 if 相當于嵌套在els語句中,形成了嵌套結構printf("輸入的數字是正數\n");elseprintf("輸入的數字是負數\n");return 0;
}

5)else的懸空問題

如果有多個if 和else ,可以記住這樣一條規則, else 總是跟最接近的if 匹配

#include <stdio.h>
int main()
{int a = 0;int b = 2;if(a == 1)if(b == 2)printf("hehe\n");elseprintf("haha\n");//打印為空   第一個if為假 而if...else嵌套在第一個if中return 0;
}

2.關系操作符

比較的表達式稱為 “關系表達式”(relational expression),里面使用的運算符就稱為“關系運算符”(relational operator)

?? > 大于運算符

?? < 小于運算符
?? >= 大于等于運算符
?? <= 小于等于運算符
?? == 相等運算符(相等運算符== 與賦值運算符= 是兩個不一樣)
?? != 不相等運算符

關系表達式通常返回0 或1 ,表示真假。

容易錯誤的是:多個關系運算符不宜連用

i < j < k//關系運算符是從左到右計算,所以實際執行的是下面的表達式//(i < j) < k//i < j 返回 0 或1 ,所以最終是 0 或 1 與變量k 進行比較。如果想要判斷變量j的值是否在 i //和 k 之間,應該使用下面的寫法:i < j && j < k

3.條件操作符

條件操作符也叫三目操作符,需要接受三個操作數

exp1 ? exp2 : exp3

條件操作符的計算邏輯是:如果exp1 為真, exp2 計算,計算的結果是整個表達式的結果;如果 exp1 為假, exp3 計算,計算的結果是整個表達式的結果

#include <stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);b = a>5 ? 3:-3;printf("%d\n", b);return 0;
}
4.邏輯操作符:&&? ||? !

? ! :邏輯取反運算符(改變單個表達式的真假)

? && :與運算符,就是并且的意思(兩側的表達式都為真,則為真,否則為假)
? || :或運算符,就是或者的意思(兩側至少有一個表達式為真,則為真,否則為假)

1) 邏輯取反運算符 !

?

#include <stdio.h>
int main()
{int flag = 0;if(!flag)//如果flag 為真, !flag 就是假,如果 flag 為假, !flag 就是真{printf("do something\n");}return 0;
}
2 與運算符

?

#include <stdio.h>
int main()
{int month = 0;scanf("%d", &month);if(month >= 3 && month <= 5)//是month既要大于等于3,又要小于等于5{printf("春季\n");}return 0;
}    
3)?或運算符

#include <stdio.h>
int main()
{int month = 0;scanf("%d", &month);if(month == 12 || month==1 || month == 2)//月份是12月或者1月或者2月是冬天{printf("冬季\n");}return 0;
}    
4) 閏年的判斷

輸入一個年份year,判斷year是否是閏年

1. 能被4整除并且不能被100整除是閏年
2. 能被400整除是閏年

#include <stdio.h>
//代碼1
int main()
{int year = 0;scanf("%d", &year);if(year%4==0 && year%100!=0)printf("是閏年\n");else if(year%400==0)printf("是閏年\n");return 0;
}
#include <stdio.h>
//代碼2
int main()
{int year = 0;scanf("%d", &year);if((year%4==0 && year%100!=0) || (year%400==0))printf("是閏年\n");return 0;
}
5)?短路

在C語言邏輯運算符中,總是先對左側的表達式求值,再對右邊的表達式求值,如果左邊的表達式滿足邏輯運算符的條件,就不再對右邊的表達式求值。這種情況稱為“短路

if(month 1 >= 3 && month <= 5)// && 的左操作數是 month >= 3 ,右操作數是month <= 5 
//當左操作數month >= 3 的結果是 0 的時候,即使不判斷month <= 5 ,整個表達式的結果也是0(不是春季)

所以,對于&&操作符來說,左邊操作數的結果是0的時候,右邊操作數就不再執行

if(month == 12 || month==1 || month == 2)//如果month == 12則不用再判斷month是否等于1或者2,
//整個表達式的結果也是1(是冬季) 所以, || 操作符的左操作數的結果不為0時,就無需執行右操作數

謝謝觀看

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

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

相關文章

LangChain 概述 (模塊索引)

文章目錄 一、下載二、核心功能1、流式傳輸 streaming 三、LCEL四、組成部分1、Promp template2、Example selectors (示例選擇器)3、Chat models (聊天模型)4、Messages (消息)5、LLMs (大語言模型) 一、下載 二、核心功能 其中包括以下內容&#xff1a; 從模型中返回結構化的…

若依 Vue 前端分離 3.8.8 版中生成的前端代碼中關于下拉框只有下拉箭頭的問題

生成代碼修改前 <el-form-item label"課程學科" prop"subject"><el-select v-model"queryParams.subject" placeholder"請選擇課程學科" clearable><el-optionv-for"dict in course_subject":key"dict…

Mysql中常用函數的使用示例

場景 基礎知識回顧&#xff1a;mysql中常用函數的使用示例。 注&#xff1a; 博客&#xff1a;霸道流氓氣質-CSDN博客 實現 數學函數 -- ABS(x)返回x的絕對值 SELECT ABS(-1),ABS(2); -- PI()返回圓周率 SELECT PI(); -- SQRT(x)返回非負數x的二次方根 SELECT SQRT(4); -…

【博士每天一篇文獻-算法】Adult neurogenesis acts as a neural regularizer

閱讀時間&#xff1a;2023-12-20 1 介紹 年份&#xff1a;2022 作者&#xff1a;Lina M. Tran&#xff0c;Adam Santoro&#xff0c;谷歌DeepMind 期刊&#xff1a; Proceedings of the National Academy of Sciences 引用量&#xff1a;13 代碼&#xff1a;https://github.c…

A4-C四驅高防輪式巡檢機器人

在當今數字化和智能化迅速發展的時代&#xff0c;旗晟智能帶來了一款革命性的創新產品——A4-C四驅高防輪式巡檢機器人。這款機器人以其卓越的性能和多功能性&#xff0c;為工業巡檢領域帶來了全新的解決方案。 一、產品亮點 1、四驅動力與高防護設計 四驅高防輪式巡檢機器人…

ASUS/華碩槍神4 G532L G732L系列 原廠win10系統 工廠文件 帶F12 ASUS Recovery恢復

華碩工廠文件恢復系統 &#xff0c;安裝結束后帶隱藏分區&#xff0c;一鍵恢復&#xff0c;以及機器所有驅動軟件。 系統版本&#xff1a;Windows10 原廠系統下載網址&#xff1a;http://www.bioxt.cn 需準備一個20G以上u盤進行恢復 請注意&#xff1a;僅支持以上型號專用…

GPT-2怎么做翻譯任務?

首先需要知道的是GPT-2無論在訓練還是推理過程都是只使用了transformer decoder&#xff0c;并沒有使用encoder結構&#xff0c;那么它是怎么做的翻譯任務呢&#xff1f; 使用transformer encoderdecoder的著名架構有&#xff1a; 最原始的transformer model&#xff08;Atte…

計算機應用數學--第一次作業

第一次作業計算題編程題 &#xff08;20分&#xff09; 第一次作業 計算題 &#xff08;20分&#xff09;求 E ( X ) E(X) E(X)&#xff0c; V a r ( X ) Var(X) Var(X) &#xff08;1&#xff09; X X X 服從 [ a , b ] [a,b] [a,b] 均勻分布。 &#xff08;2&#xff09;…

操作系統期末必考概念大綱(整理·全)

第一章 1、 操作系統的概念 2、 計算機發展的四個階段 3、 手工操作階段、批處理系統階段、多道程序系統階段、分時操作系統階段、通用操作系統階段 4、 批處理系統&#xff08;聯機、脫機&#xff09; 5、 操作系統的6個基本類型 6、 多道批處理特征 7、 分時系統特點 8、 算法…

第二節-K8s詞匯表

關鍵字詞匯表 https://kubernetes.io/zh-cn/docs/reference/glossary/?fundamentaltrue API Group (API 組)Kubernetes API 中的一組相關路徑。 API 服務器亦稱作:kube-apiserver API 服務器是 Kubernetes 控制平面的組件&#xff0c; 該組件負責公開了 Kubernetes API&…

2024年智慧教育與社會科學國際會議 (ICSSS 2024)

2024年智慧教育與社會科學國際會議 (ICSSS 2024) 2024 International Conference on Smart Education and Social Sciences 【重要信息】 大會地點&#xff1a;北京 大會官網&#xff1a;http://www.icicsss.com 投稿郵箱&#xff1a;icicssssub-conf.com 【注意&#xff1a;稿…

Stable-diffusion-WebUI 的API調用(內含文生圖和圖生圖實例)

前情提要 在之前嘗試使用Diffusers庫來進行stable-diffusion的接口調用以及各種插件功能實現&#xff0c;但發現diffusers庫中各復雜功能的添加較為麻煩&#xff0c;而且難以實現對采樣器的添加&#xff0c;safetensors格式模型的讀取。在官網上找到了webui有專門的api接口&am…

1117 數字之王

solution 判斷現有數字是否全為個位數 全為個位數&#xff0c;找出出現次數最多的數字&#xff0c;并首行輸出最多出現次數&#xff0c;第二行輸出所有出現該次數的數值不全為個位數 若當前位數值為0&#xff0c;無需處理若當前位數值非0&#xff0c;則每位立方相乘&#xff0…

10.x86游戲實戰-匯編指令lea

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

Prometheus + Grafana 監控系統搭建使用指南-redis_exporter 安裝與配置

Redis 接入 Prometheus 監控系統 系列文章目錄 Prometheus 的安裝部署Grafana的安裝部署Linux服務器接入Prometheus監控-Node Exporter 安裝指南Prometheus 接入SpringBoot微服務監控Mysql 接入 Prometheus RocketMQ 接入Prometheus 監控ElasticSearch 接入 PrometheusNacos …

vue使用axios獲取信息的案例

List組件&#xff08;用來展示搜索的信息&#xff09; <template><div class"row"><!-- 列表數據 --><div class"card" v-for"user in info.users" :key"user.login" v-show"info.users.length">&l…

智慧校園-資產管理系統總體概述

智慧校園資產管理系統是面向教育機構設計的一體化數字平臺&#xff0c;其核心目標在于通過先進的信息技術手段&#xff0c;全面優化校園內部的資產管理流程。該系統致力于提升資產管理的效率與透明度&#xff0c;同時降低成本并確保所有操作符合財務及審計規范&#xff0c;為校…

Debezium系列之:單表多個tinyint(1)類型字段支持選擇字段轉化為int或者boolean

Debezium系列之:單表多個tinyint 1類型字段支持選擇字段轉化為int或者boolean 一、需求二、相關技術三、創建表和插入數據四、參數設置和字段選擇五、查看數據一、需求 單表中有多個tinyint(1)字段,需要能支持選擇某個字段類型轉化為int,某個字段類型轉化為boolean二、相關技…

RNN文獻綜述

循環神經網絡&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一種專門用于處理序列數據的神經網絡模型。它在自然語言處理、語音識別、時間序列預測等領域有著廣泛的應用。本文將從RNN的歷史發展、基本原理、應用場景以及最新研究進展等方面進行綜述。 歷…

getResources().getDimension引起的問題

在xml中設置字體&#xff1a; <!-- <TextView--> <!-- android:textSize"dimen/sp_9"android:layout_height"dimen/dp_14" -->然后想著不這么設置&#xff0c;想著代碼中動態設置字體大小&#xff0c;改為如下&#xf…