Hi!这里是渔火。今天我们继续来讲C语言的分支结构。在C语言里,可以使用if-else实现分支结构。
1、双分支if语句。其一般形式为:if(表达式)语句1;else 语句2;。 我们来用双分支if语句来做一道简单的题目。
【1.1】使用双分支语句求两个数中较大的数。
#include运行结果1://2023.2.1渔火 Linux迷 www.linuxmi.com int main() { int a,b; printf("请输入两个整数:"); scanf("%d%d",&a,&b); if(a>b) printf("两个整数中的最大数为:%d ",a); else printf("两个整数中的最大数为:%d ",b); //2023.2.1渔火 Linux迷 www.linuxmi.com return 0; }
运行结果2:
2、单分支语句。其一般形式为:if(表达式) 语句; 我们用单分支语句来解决一道题目。
【2.1】编写程序任意输入一个实数,输出其绝对值。
#include运行结果如下://2023.2.1渔火 Linux迷 www.linuxmi.com int main() { float x; scanf("%f",&x); if(x<0) x=-x; printf("%f",x); //2023.2.1渔火 Linux迷 www.linuxmi.com return 0; }
分析:无论在双分支还是单分支if语句的格式中,“表达式”都是用来描述判断的条件,语法上可以是任意类型的表达式。表达式的结果如果为“0”,表示“假”;结果为“1”,表示“真”。
无论在双分支还是单分支if语句的格式中,被执行的语句均为单个语句,如果想要执行一组语句时,则必须将这一组语句用{}括起来形成复合语句,但在“}”之后不能再加括号。注意:复合语句中的语句执行时会全部被执行。
我们来看一个复合语句的例子。
【3.1】输入3个实数,要求按从小到大的顺序输出。
#include运行结果如下://2023.2.1渔火 Linux迷 www.linuxmi.com int main() { float x,y,z,k; scanf("%f %f %f",&x,&y,&z); if(x>y) {k=x;x=y;y=k;} if(x>z) {k=x;x=z;z=k;} if(y>z) {k=y;y=z;z=k;} printf("%5.2f,%5.2f,%5.2f ",x,y,z); //2023.2.1渔火 Linux迷 www.linuxmi.com return 0; }
分析:{k=x;x=z;z=k;}的作用是交换变量x和y的值,变量k为中间变量。 使用if语句的基本形式解决分支少于两个的问题十分方便,而经常遇到的是多于两个分支,或者需要再多个不同条件下执行不同语句的问题,这就需要掌握if语句的嵌套以及多分支结果。一个if语句中又包含一个或多个if语句的现象称为if语句的嵌套。if语句的基本形式:if(表达式) 语句1;else 语句2;。其中“语句1”或“语句2”都可以嵌套另一个if语句,在缺省else部分的if语句中的“语句”也可以嵌套另一个if语句。在if语句嵌套的结构中一定要注意else与if之间的对应关系。为了避免二义性,在C语言中规定其对应原则是:else总是与它前面最近的一个未匹配的if相匹配。
【4.1】输入3个任意数,找出其中的最大值。
#include运行结果如下://2023.2.1渔火 Linux迷 www.linuxmi.com int main() { int x,y,z,max; scanf("%d %d %d",&x,&y,&z); if(x>y) if(x>z) max=x; else max=z; else if(y>z) max=y; else max=z; printf("max=%d ",max); //2023.2.1渔火 Linux迷 www.linuxmi.com return 0; }
多分支if语句是最常用的实现多路分支的方法,其一般形式为:if(表达式1) 语句1;else if(表达式2)···else if(表达式n-1) 语句n-1;else 语句n;.
在C语言中还提供了一种switch语句也可以实现多分支的选择。switch的一般形式为:switch(表达式){case 常量表达式1;语句1;break;case 常量表达式2;语句2;break;···case 常量表达式n;语句n;break;default:语句n+1;break;}
注意:1、switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型。2、每个case后面的常量表达式的值互不相同,否则会出现互相矛盾的现象。3、各个case和default的出现次序不影响执行结果。4、可以让多个case共用一组执行语句。5、switch语句允许嵌套使用。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Linux
+关注
关注
87文章
10990浏览量
206735 -
Switch
+关注
关注
1文章
514浏览量
57539 -
C语言
+关注
关注
180文章
7530浏览量
128646 -
程序
+关注
关注
114文章
3631浏览量
79541 -
字符
+关注
关注
0文章
229浏览量
24888
原文标题:从零开始跟我学 C 语言之分支结构(下)
文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
《从零开始学电路基础》(从零开始学电子技术丛书)
电气控制与PLC技术].刘建清.扫描版.pdf[从零开始学电子测量技术].李建清.扫描版.pdf[从零开始学CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[
发表于 06-05 23:12
[从零开始学单片机C语言].李建清-著.【高清版】
` 本帖最后由 zgzzlt 于 2012-8-15 21:50 编辑
[从零开始学单片机C语言].李建清-著.【高清版】`
发表于 08-15 08:44
[从零开始学单片机C语言].李建清.扫描版PDF
` 本帖最后由 木木1999 于 2013-9-29 14:11 编辑
下载地址:http://yunpan.cn/QGCsezJtF5mjp[从零开始学单片机C语言].李建清.扫
发表于 09-29 13:57
从零开始学labview
从零开始,这里开一贴,附上每天给女神发的资料和自己整理的文档,希望能帮到一些想要学的人。(不知道为什么有回复审核,我自己早就回过贴结果一直到到第二天也没审核通过,各位不要介意,我尽力了)
发表于 12-06 18:55
《从零开始学电子》丛书全套网盘分享
】从零开始学模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始学电子丛书】
发表于 06-28 18:45
从零开始跟我学C语言之分支结构(上)
今天我们来讲分支结构。计算机在执行程序时,通常都是按照语句的书写顺序执行的,但在许多情况下需要根据条件选择所要执行的语句,这就选择所要的语句。C语言中用于实现分支
评论