当前位置: 首页 > news >正文

学懂C语言(十三):C语言中判断与循环的用法

       

目录

一、判断

1、if语句

2、switch语句

二、循环

1、while循环

2、do-while循环

3、for循环

三、关键点

循环

判断


   

         C语言中的判断和循环是控制程序流程的基本结构,它们允许程序根据条件执行不同的代码块,或者重复执行某段代码。本节内容比较基础,容易理解,有C语言基础的可以跳过,以下是C语言中判断和循环的基本用法:

一、判断

C语言中的判断结构主要有两种:if语句和switch语句。

1、if语句

if语句用于根据一个布尔表达式的结果来决定是否执行某段代码。if语句有几种形式:

1)基本形式:

if (condition) {// 当condition为真时执行的代码
}

2)if-else形式:

if (condition) {// 当condition为真时执行的代码
} else {// 当condition为假时执行的代码
}

3)if-else if-else形式: 

if (condition1) {// 当condition1为真时执行的代码
} else if (condition2) {// 当condition2为真时执行的代码
} else {// 当所有条件都为假时执行的代码
}

示例: 

#include <stdio.h>int main() {int age;printf("请输入您的年龄: ");scanf("%d", &age);if (age >= 18) {printf("欢迎进入!\n");} else {printf("对不起,您未满18岁,不能进入。\n");}return 0;
}

示例解释:

        在这个示例中,程序会提示用户输入年龄,然后使用if语句来判断年龄是否大于等于18岁。如果是,则输出“欢迎进入!”;否则输出“对不起,您未满18岁,不能进入。”

2、switch语句

switch语句用于根据一个整数表达式的值来选择执行多个代码块中的一个。

switch (expression) {case constant1:// 当expression等于constant1时执行的代码break;case constant2:// 当expression等于constant2时执行的代码break;// 可以有任意数量的case语句default:// 当expression不等于任何case常量时执行的代码
}

示例:

#include <stdio.h>int main() {int day;printf("请输入一个数字(1-7): ");scanf("%d", &day);switch (day) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;default:printf("无效的输入\n");}return 0;
}

示例解释:

        在这个示例中,程序会提示用户输入一个数字(1-7),然后使用switch语句来根据输入的数字输出对应的星期几。如果输入的数字不在1到7的范围内,则输出“无效的输入”。

二、循环

C语言中的循环结构主要有三种:while循环、do-while循环和for循环。

1、while循环

while循环在每次循环开始时检查条件,如果条件为真,则执行循环体中的代码。

while (condition) {// 当condition为真时重复执行的代码
}

2、do-while循环


do-while循环在每次循环结束时检查条件,因此循环体至少会执行一次。

do {// 至少执行一次的代码
} while (condition);

3、for循环

for循环是一种更紧凑的循环结构,它包含初始化、条件和迭代表达式。

for (initialization; condition; increment) {// 当condition为真时重复执行的代码
}

三、关键点

在实际应用中,使用循环和判断时需要注意以下关键点:

循环

  1. 避免无限循环(死循环):确保循环条件最终会变为假,避免程序卡死。
  2. 循环变量管理:正确初始化和更新循环变量,避免逻辑错误。
  3. 循环控制:谨慎使用breakcontinue,确保逻辑清晰。
  4. 性能优化:对于大数据量的循环,注意性能优化,减少不必要的计算。

判断

  1. 条件逻辑:确保条件表达式的逻辑正确,避免逻辑错误。
  2. 边界处理:特别注意边界条件的处理,确保所有可能的边界值都被考虑。
  3. 嵌套层次:避免过多的嵌套if语句,保持代码简洁。
  4. 短路求值:注意逻辑运算符的短路求值特性,避免意外的代码跳过。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 云监控(华为) | 实训学习day6(10)
  • 【华为机考真题】字符串压缩
  • 汽车技术智能化程度不断提升,线束可靠性如何设计?
  • 笔记 3 : 继续彭老师课本第 3 章的 arm 的汇编指令
  • lua 游戏架构 之 LoaderWallet 异步加载
  • 在python中使用正则表达式
  • 微服务和VUE入门教程(16): zuul 熔断
  • JMeter使用手册
  • Redis集群部署Windows版本
  • EXCEL怎么自动添加表格吗?
  • STM32高级运动控制系统教程
  • 时钟芯片LMK04828调试记录
  • unity 实现图片的放大与缩小(根据鼠标位置拉伸放缩)
  • 在LabVIEW中实现图像矫正
  • 56 网络层
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • CSS3 变换
  • css选择器
  • ES6语法详解(一)
  • golang中接口赋值与方法集
  • IDEA 插件开发入门教程
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Vue.js源码(2):初探List Rendering
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Xmanager 远程桌面 CentOS 7
  • 从零开始的无人驾驶 1
  • 反思总结然后整装待发
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 基于遗传算法的优化问题求解
  • 力扣(LeetCode)22
  • 码农张的Bug人生 - 初来乍到
  • 前嗅ForeSpider采集配置界面介绍
  • 区块链技术特点之去中心化特性
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 为什么要用IPython/Jupyter?
  • 新版博客前端前瞻
  • 一道闭包题引发的思考
  • 原生 js 实现移动端 Touch 滑动反弹
  • mysql面试题分组并合并列
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​iOS实时查看App运行日志
  • ​MySQL主从复制一致性检测
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (13):Silverlight 2 数据与通信之WebRequest
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (接口自动化)Python3操作MySQL数据库
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .apk 成为历史!
  • .NET Core WebAPI中使用swagger版本控制,添加注释