C语言的选择语句
来源:互联网 发布:三菱plc编程教学视频 编辑:程序博客网 时间:2024/05/21 15:44
C语言的选择语句允许程序在一组选项中选择一条特定的执行路径。C语言包括两类选择语句,if
语句和switch
语句。
if
语句
if
语句通过测试表达式的值从两种选项中选择一种,if语句的一般形式为:
if (表达式) 语句
其中表达式的括号是必须的。
if
语句的执行步骤是先计算圆括号内表达式的值,如果表达式的值非零,则结果为真,执行圆括号后面的语句。注意区分关系运算符中的==
和赋值运算符,因为在C语言中两则可以同时作为if
语句的表达式但具有完全不同的意义,出现这种情况时gcc
编译器在开启-Wall
选项会产生警告。
/************************************** * using_if_1.c * * * * C语言中的if语句-基础 * **************************************/#include <stdio.h>int main(){ int i = 3; int j = 5; if (i < j) printf("%d比%d小\n", i, j); /*赋值表达式i=5结果为5,为真,执行printf语句*/ if (i = 5) printf("赋值表达式作if语句表达式\n"); /*关系表达式j == 5结果为1, 为真,执行printf语句*/ if (j == 5) printf("关系表达式作if语句表达式\n"); return 0;}
if
语句中可以包含else
子语句,表示在圆括号内的表达式值为零时,执行else
后面的语句,其基本形式如下:
if (表达式) 语句 else 语句
if
语言内部的语句可以是C语言支持的任何类型的语句,包括if
语句本身,并且对嵌套层次没有限制。内部语句通常采用缩进形式。当嵌套层次造成程序混乱,像在表达式中使用圆括号一样使用大括号{}
。
当在else
语句的子语句中嵌套另一个if
语句时,一般不对它进行缩进,而是把每个else
都与最初的if
对齐,形成级联式if
语句的书写形式,这种形式可以避免判定数量过多时造成的过度缩进问题,同时也更清晰地显示这是一连串的判定:
if (表达式) 语句else if (表达式) 语句else if (表达式) 语句else 语句
/************************************* * using_if_2.c * * * * C语言if语句的else子语句及级联式if * *************************************/#include <stdio.h>int main(){ int i = 0; scanf("%d", &i); if (i % 2 == 0) printf("%d是偶数\n", i); else printf("%d是奇数\n", i); if (i < 0) printf("%d < 0", i); else if (i < 100) printf("0 <= %d < 100\n", i); else printf("%d > 100\n", i); return 0;}
switch
语句
在编程中,常常需要把表达式和一组值相比较,从中找到匹配项,执行相应的语句。级联式if
语句可以实现这个需求,但是对于整型的表达式值和可选项来说,C语言提供了switch
语句。switch
语句比级联式if
更易读,并且执行速度往往比较快。
switch语句的常用格式是:
switch (表达式){ case 常量表达式: 多条语句 ... case 常量表达式: 多条语句 default: 多条语句}
switch
语句由以下三部分组成:
- 控制表达式 。
switch
后面跟的由圆括号括起来的整型表达式称为控制表达式,该表达式的结果必须是整型或是字符型。 - 情况标号。每一种情况以
case 常量表达式 :
开始,常量表达式不能包含变量及函数调用,且结果必须为整数值。case
后面只能跟一个常量表达式,但多个情况标号可以放在同一组语句前面,表示对多组情况执行同一组语句。 - 语句。情况标号后面可跟任意数量的语句,不需要用大括号把这些语句括起来,且最后一条语句通常是
break
语句。在switch
语句中,执行break
语句时,程序会跳出switch
语句,而继续执行switch
语句后面的语句。忘记’break’语句,程序就会继续执行下面情况的语句,也是编程时常犯的错误。
C语言不允许重复的情况标号,但不要求情况的顺序,default
情况可以不放在最后。也不要求必须有default
情况,若在没有default
的情况下且所有情况都不匹配,就就直接传给switch
语句后面的语句。
/************************************* * using_switch.c * * * * C语言中的switch语句 * *************************************/#include <stdio.h>int main(){ char score = '\0'; printf("Please enter your score:\n"); scanf("%c", &score); switch (score) { case 'A': case 'B': case 'c': case 'D': printf("Congratulations! You passed\n"); break; case 'E': printf("Sorry, You failed\n"); break; default: printf("Wrong score!\n"); break; } return 0;}
参考文献
- K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
- C语言的选择语句
- C语言的选择结构 (if 语句 和 switch 语句)
- C语言中的选择判断语句
- C语言的语句
- C语言的选择结构
- C语言的选择排序
- C语言的选择算法
- C语言选择语句的使用---if()-else和switch--case
- C语言的控制语句
- c语言的goto语句
- C语言语句的组成
- C语言的循环语句
- C语言的控制语句
- c语言解析系列(2)选择语句
- C语言之选择流程语句:if--else
- 黑马程序员--iOS基础--C语言知识点---选择语句
- 【黑马程序员】【C语言】选择结构-if语句
- 【黑马程序员】【C语言】选择结构-switch语句
- Backbone.js快速入门(一)
- 【leetcode】 Largest Rectangle in Histogram
- Swift学习笔记之基本运算符(一)
- 在64位ubuntu14.04上安装校园客户端iNodeClient
- 从Sql Server通过HTTP推送数据到网页
- C语言的选择语句
- jsonp不能post!
- 当webview遇到360wifi
- 谈谈对Spring IOC的理解
- 3414POJ
- android中的Bitmap
- fedora20配置静态ip
- I/O 多路复用之 Event Poll
- 数位DP专题小结--by sgx