怎么分析C语言的选择结构
导读:本文共4447字符,通常情况下阅读需要15分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、if-else语句1.单选择单选择通过if语句就可以实现,if语句的语法及执行流程如下:if(表达式){代码块(表达式返回值为真时执行)}当程序运行到if语句时,会由表达式进行判定,诺表达式的返回值为真,则进入代码块执行语句,为假便跳过代码块继续执行。(当代码块语句仅有一句时,可以省略大括号。)举一个简单的例子例:判断10是否为3的倍数intmain(... ...
目录
(为您整理了一些要点),点击可以直达。一、if-else语句
1.单选择
单选择通过if语句就可以实现,if语句的语法及执行流程如下:
if(表达式){代码块(表达式返回值为真时执行)}
当程序运行到if语句时,会由表达式进行判定,诺表达式的返回值为真,则进入代码块执行语句,为假便跳过代码块继续执行。(当代码块语句仅有一句时,可以省略大括号。)
举一个简单的例子
例:判断10是否为3的倍数
intmain(){ inti=10; if(i%3==0)//表达式结果为假 printf("是");//代码块内未执行 return0;}
2.双选择
双选择通过if-else语句实现,if-else语句的语法及执行流程如下:
(else的匹配:else是和它相距的最近的if匹配的)
if(表达式){语句一(表达式返回值为真时执行)}else{语句二(表达式返回值为假时执行)}
当程序运行到if语句时,会由表达式进行判定,表达式的返回值为真,则执行语句1,为假便块执行语句2。
举一个简单的例子
例:判断学生分数及格
#include<stdio.h>intmain(){ inti=0; scanf("%d",&i); if(i>=60) printf("及格"); else printf("不及格"); return0;}
3.多选择
通过else if语句实现的多选择,else if语句的语法及执行流程如下:
if(表达式1){语句1(表达式1返回值为真时执行)}elseif(表达式2){语句2(表达式返回值为真时执行)}elseif(表达式3){语句3(表达式返回值为真时执行)}else{代码块(以上表达式均为假时执行)}
当程序运行到if语句时,会由表达式进行判定,表达式1的返回值为真,则进入if下的代码块执行语句1,为假便进入表达式2。当然if-else可以实现的分支不止这四种,通过增加else if语句的数量便可以实现更多的选择。
举一个简单的例子
例:年龄分段
#include<stdio.h>intmain(){intage=0;scanf("%d",&age);if(age<18){printf("少年\n");}elseif(age>=18&&age<30){printf("青年\n");}elseif(age>=30&&age<50){printf("中年\n");}elseif(age>=50&&age<80){printf("老年\n");}else{printf("老寿星\n");}return0;}
二.switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。else if语句也能实现多分支情况,但在某些情况下使用else if来实现,会使代码过于复杂。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
如果使用else if
#include<stdio.h>intmain(){ intday=0; scanf("%d",&day); if(1==day) printf("星期一"); elseif(2==day) printf("星期二"); elseif(3==day) printf("星期三"); elseif(4==day) printf("星期四"); elseif(5==day) printf("星期五"); elseif(6==day) printf("星期六"); else printf("星期日"); return0;}
那么这个代码便会太过复杂,而使用switch就会很多
switch语句的语法及执行流程如下:
switch(整型表达式){//在一个switch中可以有任意数量的case语句。case整形常量表达式:语句;}
case 是一个入口,按照输入整型表达式的值进入,后按照顺序依次运行。
单使用switch语句是无法实现分支的,需要搭配break使用才能实现真正的分支。
举一个例子:
#include<stdio.h>intmain(){intday=0;scanf("%d",&day);switch(day){case1:printf("星期一\n");case2:printf("星期二\n");case3:printf("星期三\n");case4:printf("星期四\n");case5:printf("星期五\n");case6:printf("星期六\n");case7:printf("星期天\n");}return0;}
输入值分别为2 4时,输出结果如下:
与想要实现的效果相差甚远,而搭配break使用就能解决这个问题。
#include<stdio.h>intmain(){intday=0;scanf("%d",&day);switch(day){case1:printf("星期一\n");break;case2:printf("星期二\n");break;case3:printf("星期三\n");break;case4:printf("星期四\n");break;case5:printf("星期五\n");break;case6:printf("星期六\n");break;case7:printf("星期天\n");break;}return0;}
break语句 的实际效果是把语句列表划分为不同的分支部分。
switch除了搭配break语句使用,往往也会搭配default语句
如果表达的值与所有的case标签的值都不匹配时,所有的语句都会被跳过。程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
诺并不想忽略不匹配所有标签的表达式的值时,可以在语句列表中增加一条default子句。
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。
例如:
#include<stdio.h>intmain(){intday=0;scanf("%d",&day);switch(day){case1:printf("星期一\n");break;case2:printf("星期二\n");break;case3:printf("星期三\n");break;case4:printf("星期四\n");break;case5:printf("星期五\n");break;case6:printf("星期六\n");break;case7:printf("星期天\n");break;default:printf("输入错误");}return0;}
switch语句可以有一个可选的defaultcase,出现在switch的结尾。default case可用于在上面所有case都不为真时执行一个任务。default case中的break语句不是必需的。
C语言是什么
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储器。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
怎么分析C语言的选择结构的详细内容,希望对您有所帮助,信息来源于网络。