新闻详情

新闻详情

首页 / 资讯中心 / 详情

初识C语言:分支和循环语句(上)

发布时间:2026/9/8 16:04:13来源:尧图网络
初识C语言:分支和循环语句(上)
前言掌握分支语句ifelseswitch语句掌握关系操作符条件操作符逻辑操作符掌握循环语句包括forwhiledo.while以及break和continue并且学会循环嵌套if语句if(表达式)语句表达式为真则语句执行表达式为假语句不执行而在C语言中0表示假非0表示真举个例子#includestdio.hintmain(){intnum 0;scanf(%d, num);if(num %21)printf(%d是奇数\n, num);return0;}在这个例子中if后面判断这个数除2是不是余1如果余1则打印是奇数否则不打印else对于一个正整数不是奇数则是偶数那么现在给定一个任意的正整数进行判断的话就可以使用if....else....语句#includestdio.hintmain(){intnum 0;scanf(%d, num);if(num %21)printf(%d是奇数\n, num);elseprintf(%d是偶数\n, num);return0;}多分支在if...else...语句中else可以与另一个if语句连用构成多分支的场景比如#includestdio.hintmain(){floattotal 0;scanf(%f, total);if(total 50)printf(减15元实付%.2f\n, total -15);else if(total 30)printf(减8元实付%.2f\n, total -8);else if(total 20)printf(减5元实付%.2f\n, total -5);elseprintf(不满⾜满减去隔壁拼个单吧。\n);return 0;}嵌套if语句成绩85,不挂科没有记过处分的有奖学金期中任意一个条件不满足都不能评奖#includestdio.hintmain(){intgpa 90;inthas_fail 0;// 0没挂科inthas_warn 0;// 0没处分if(gpa 85){if(has_fail 0){if(has_warn 0){printf(恭喜奖学⾦到⼿请客\n);}else{printf(警告处分不能评奖\n);}}else{printf(挂过科不能评奖\n);}}else{printf(绩点不够继续努⼒。\n);}return0;}悬空else问题如果有多个if和elseelse总是与前面最近的还没有配对的if结合关系操作符关系运算符有大于小于大于等于小于等于等于不等于!而关系表达式通常返回0或1表示真假比如2012返回的值就是1关系表达式常用于if或while结构注意要区别开和后者是赋值操作符多个关系运算符不宜连用比如要判断ijk,应写成ijjk,比如输入一个年龄如果年龄在18到36岁之间我们输出青年#includestdio.hintmain(){intage 0;scanf(%d, age);if(18 ageage 36){printf(⻘年\n);}return0;}条件操作符也叫三目操作符需要接受三个操作数的exp1 ? exp2 : exp3如果exp1为真则输出exp2如果exp1为假则输出exp3逻辑操作符分别是逻辑取反逻辑与逻辑或运算符||逻辑取反改变单个表达式的真假逻辑与的两侧的表达式都为真则为真。逻辑与表示并且两侧的表达式都为真则为真否则为假。逻辑或两侧至少有一个表达式为真则为真否则为假短路C语言逻辑运算符还有一个特点它总是先对左侧的表达式求值再对右边的表达式求值如果左边的表达式满足逻辑运算符的条件就不再对右边的表达式求值这种情况被称为“短路”switch语句除了if语句C语言还提供了switch语句来实现分支结构switch是一种特殊形式的if...else结构用于判断条件有多个结果的情况switch后面的表达式必须是整型表达式case后的值必须是整型常量表达式比如输入一个整数值计算除3之后的余数#includestdio.hintmain(){intn 0;scanf(%d, n);switch(n %3){case0:printf(整除余数为0\n);break;case1:printf(余数是1\n);break;case2:printf(余数是2\n);break;}return0;}switch语句也是分支效果只有在switch语句中使用break才能跳出switch语句如果某一个case语句后边没有break语句代码会继续往下执行有可能执行其他case语句中的代码switch语句中的default应对switch后面的表达式中的值无法匹配代码中的case语句的时候这个时候要不不做处理要不就得在switch语句中加入default子句#includestdio.hintmain(){intday 0;scanf(%d, day);switch(day){case1case2:case3:case4:case5:printf(早⼋⼈早⼋魂\n);break;case6:case7:printf(周末关掉闹钟睡到11点\n);break;default:printf(输入错误\n);break;}return 0;}while循环首先上来执行判断表达式表达式的值为0循环直接结束表达式的值不为0则执行循环语句语句执行完后再继续判断是否进行下一次判断比如在屏幕上打印1-10的值#includestdio.hintmain(){inti 1;while(i 10){printf(%d , i);i i 1;}return0;}练习输入一个正整数逆序打印这个整数的每一位#includestdio.hintmain(){intn 0;scanf(%d, n);while(n 0){printf(%d , n %10);n /10;}return0;}for循环for循环是三种循环里使用最多的for循环的形式为for表达式1;表达式2;表达式3表达式1用于循环变量的初始化表达式2用于循环条件的判断表达式3用于变量的调整。比如还是在屏幕上打印1-10的值#includestdio.hintmain(){inti 0;//初始化for(i 1; i 10; i){printf(%d , i);}return0;}在C99标准中for循环支持新写法循环变量可以在初始化部分来创建这样写的循环变量只能在循环内部使用好处是多个循环如果使用同一个循环变量就不会干扰了多个变量控制for循环#includestdio.hintmain(){inta 0;intb 0;for(b 0, a 10; b a; b, a--){printf(b%d, a%d\n, b, a);}return0;}do-while循环while和for这两种循环都是先判断条件满足就进入循环执行循环语句反之。而do-while循环是先进入循环体执行循环语句然后再执行while后的判断表达式所以do-while语句中循环体至少执行一次break和continue语句break是跳出循环直接结束而continue是跳出本次循环直接开始下一轮循环goto语句goto语句可以实现在同一个函数内跳转到设置好的标号处。#includestdio.hintmain(){printf(hehe\n);gotonext;printf(haha\n);next:printf(跳过了haha的打印\n);return0;}goto语句如果使用的不当就会导致在函数内部随意乱跳转打乱执行流程所以建议在合适的场景下使用
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

量化概念 23:信息比率(选股能力的标尺) 2026/9/8 20:44:05

量化概念 23:信息比率(选股能力的标尺)

两个策略,年化收益都是 16%。一个紧跟沪深 300,波动低、夏普高。另一个集中持股、偏离基准猛、总波动大。夏普说前者好——每单位总风险换来的收益更高。但前者赚的钱可能只是"跟着指数涨",没有选股能力。信息比率就是来量这个的&a…

阅读更多 →
Nuxt 内置路由出口组件 `<NuxtPage>` 完全指南:Props、页面过渡与 Suspense 生命周期 2026/9/8 20:44:05

Nuxt 内置路由出口组件 `<NuxtPage>` 完全指南:Props、页面过渡与 Suspense 生命周期

Nuxt 内置路由出口组件 <NuxtPage> 完全指南&#xff1a;Props、页面过渡与 Suspense 生命周期 【免费下载链接】nuxt the full-stack Vue framework 项目地址: https://gitcode.com/GitHub_Trending/nu/nuxt <NuxtPage> 是 Nuxt 框架内置的路由出口组件&am…

阅读更多 →
GitHub CLI 的 Codespaces gRPC 协议缓冲区生成指南:从 .proto 契约到可测试客户端 2026/9/8 20:44:05

GitHub CLI 的 Codespaces gRPC 协议缓冲区生成指南:从 .proto 契约到可测试客户端

GitHub CLI 的 Codespaces gRPC 协议缓冲区生成指南&#xff1a;从 .proto 契约到可测试客户端 【免费下载链接】cli GitHub’s official command line tool 项目地址: https://gitcode.com/GitHub_Trending/cli/cli 本文围绕仓库中的 internal/codespaces/rpc/generate…

阅读更多 →
基于YOLO与SpringBoot的密集行人检测系统设计与大模型智能分析 2026/9/8 20:44:05

基于YOLO与SpringBoot的密集行人检测系统设计与大模型智能分析

做密集行人检测最让人头疼的时刻&#xff0c;不是模型精度不够&#xff0c;而是模型明明能检测出目标&#xff0c;一到真实场景&#xff08;商场扶梯口、地铁站台、景区检票口&#xff09;就各种翻车——人挤人的时候互相遮挡&#xff0c;远处的人小到只有十几个像素&#xff0…

阅读更多 →
Impeccable `bolder` 精修命令全解:在不越界的前提下放大平淡界面的设计强度 2026/9/8 20:44:05

Impeccable `bolder` 精修命令全解:在不越界的前提下放大平淡界面的设计强度

Impeccable bolder 精修命令全解&#xff1a;在不越界的前提下放大平淡界面的设计强度 【免费下载链接】impeccable The design language that makes your AI harness better at design. 项目地址: https://gitcode.com/GitHub_Trending/im/impeccable bolder 是 AI 设计…

阅读更多 →
pdf-inspector 新手指南:30秒识别PDF类型,本地快速提取文本转Markdown 2026/9/8 20:41:04

pdf-inspector 新手指南:30秒识别PDF类型,本地快速提取文本转Markdown

pdf-inspector 新手指南&#xff1a;30秒识别PDF类型&#xff0c;本地快速提取文本转Markdown 【免费下载链接】pdf-inspector Fast Rust library for PDF inspection, classification, and text extraction. Intelligently detects scanned vs text-based PDFs to enable smar…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞