前言:在我们初学C语言学习的时是顺序结构,这是最简单程序结构。在顺序结构中,各语言都是按自上而下的顺序执行的,执行完上一个语句就自动执行洗一个语句,是无条件的,不用作任何判断。实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作,或从给定的两种或多种操作选择一个,这就是选择结构要解决的问题。
http://t.csdn.cn/6RtwN也可以在CSDN中查看,同作者。
在我们学习选择结构前,先认识一下语句
C语句可以分为一下五类:
表达式语句
函数调用语句
控制语句
复合语句
空语句
今天学习的选择结构(分支语句)和循环结构(循环语句)是控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
可分成以下三类:
条件判断语句也叫分支语句:if语句、switch语句
循环执行语句:do while语句、while语句、for语句
转向语句:break语句、goto语句、continue语句、return语句
1.选择结构和条件判断
在现实生活中需要进行判断和选择的情况很多。例如:
如果考试不及格,要补考 (判断是否及格)
周末出去旅游 (判断是否是周末)
输入一个数,输出其绝对值。可以写出以下语句
if (x <= 0) printf("%d", x); else printf("%d", -x);
我们要处理这些问题,关键在于进行“条件判断” 。
选择结构需要在进行下一个操作前先进行条件判断。
C语言的两种选择语句:
if语句:用来实现两个分支的选择结构
switch语句:用来实现多分支的选择结构
2.用if语句实现选择结构
2.1在C语言中选择结构主要是用if语句实现的,为了让大家进一步了解if语句的应用,我们举个例子
例:输入两个实数,由小到大输出这两个数
解题思路: 将两数进行比较,如果a<b,直接输出;如果a>b,将两数交换,然后输出。用if语句来判断。
要执行多条语句是,要使用代码块 “{}” 因为if语句默认后边只能管理一条语句
#include <stdio.h> int main() { int a = 0; int b = 0; scanf("%d%d", &a, &b); if (a > b) { //将a,b的值互换 int tmp = a; a = b; b = tmp; } printf("a=%d b=%d\n", a, b); return 0; }
2.2if语句的一般形式
(1) if(表达式)
语句1
(2) if(表达式)
语句1
else
语句2
(3) if(表达式1)
语句1
else if(表达式2)
语句2
else if(表达式2)
语句3
else
语句4
注意:表达式不可以连着写 例:1<x<10
if(1<x<10) //如果输入的x是11 //1<11表达式为真 返回1 //表达式将变为 if(1<10) //1<10永远成立 就会执行if中的语句,会输出错误的结果
应该写成:x>1&&x<10
2.3悬空else
编辑
根据上述代码,我们可以看出else并不是和第一个if结合,同时VS也默认将else和第二个if对其
else的匹配:else是和它离的最近的if匹配的
int num = 1; if(num == 5) { printf("hehe\n"); }
当我们写这样的代码错将等号(==)写成赋值符号(=),我们这个错误的代码也会运行下去,所以我们可以将变量写在右边,这样我们写错代码无法运行。