if语句(if单分支、if-else双分支、else-if嵌套);switch语句;选择结构的嵌套;选择结构程序设计方法。
1.基本要求
(1)理解三种if语句的语法结构,掌握使用if语句设计选择结构程序的方法。
(2)理解switch语句的语法结构,掌握使用switch语句设计多分支选择结构程序的方法。
(3)了解嵌套选择结构语句的语法表示,会分析嵌套选择结构程序的执行过程。
(4)会正确分析选择结构程序的执行过程,会合理选用语句形式设计正确的选择结构程序。
2.重点、难点
重点:if语句、switch语。
难点:如何利用选择结构进行程序设计。
一、程序的选择结构
选择结构
单分支控制的 if 条件语句
双分支控制的if-else条件语句
多分支控制的if-else-if条件语句
多路选择的switch语句
1. if 语句
语句形式
if (表达式P) 单条语句A;
为T执行F则跳出
注意:语句A可以是单条语句,也可以是用一对{ }括起来的复合语句。
1.单分之语句
//输入一个数,输入正确,返回。
#include "stdio.h"int main(){int x; // 创建一个int类型的变量scanf("%d",&x);if(x==1)printf("输入正确");
}
//例:输入两个实数,按代数值由小到大的顺序输出这两个数。
//只需要做一次比较,然后进行一次交换即可用if语句实现条件判断关键是怎样实现两个变量值的互换
#include "stdio.h"int main(){int a,b,c; // 创建一个int类型的变量printf("请输入两个数\n");scanf("%d,%d",&a,&b);if(a>b){c=a;a=b;b=c;}printf("%d,%d",a,b);
}
2.双分支控制的if条件语句
语句形式
if(表达式P)语句A;
else语句B;
注意:语句A、B可以是单条语句,也可以是用一对{}括起来的复合语句。
//例:输入密码,输入对了返回密码正确,输入错了显示密码
#include "stdio.h"int main(){int x; // 创建一个int类型的变量printf("请输入密码!\n"); //屏幕显示请输入密码scanf("%d",&x); //输入一个十进制整数if(x==123) //判断输入的是否为123printf("密码输入正确!"); //是返回正确elseprintf("密码输入错误"); //不是返回错误return 0;
}
3.多分支控制的if条件语句
语句形式
if(表达式P) {一条或多条语句A
}
else if(表达式P2){一条或多条语句A2
}
else if(表达式Pn){一条或多条语句An
}
else {一条或多条语句An+1}
//猜数字,猜中了,输出猜对了,否则输入大了,或者小了
#include "stdio.h"int main(){printf("请输入一个数字\n");int a; // 创建一个int类型的变量scanf("%d",&a);if(a==123)printf("答对了");else if(a<123)printf("猜小了");elseprintf("猜大了");
}
if语句的一般形式
if (表达式) 语句1
[else语句2]
关系表达式 逻辑表达式
数值表达式 任意类型表达式
方括号内的部分为可选的
简单的语句复合语句另一个if语句等
4.选择结构的嵌套
在if语句中又包含一个或多个if语句称为if语句的嵌套
if( )if()语句1else 语句2
elseif() 语句3else 语句4
在if语句中又包含一个或多个if语句称为if语句的嵌套
if ()
{if ()语句1}
else语句2//{}限定了内嵌if范围
二义性:
if (表达式1)
if(表达式2) 语句序列2;
else
语句序列3;
if (表达式1)
if(表达式2)语句序列2;
else
语句序列
C语言规定: else总是与它前面最近的且未曾配对的if配对。
#include "stdio.h"void main(){int a=1,b=-1;if(a>0) //成立向下执行if(b>0)a++; //不成立elsea--; //执行 1-- =0printf("a=%d\n",a);}
5·多路选择的switch语句
switch语句用来实现多分支选择结构
学生成绩分类
85分以上为'A’等
70~84分为'B'等
60~69分为'℃'等
switch语句的作用是根据表达式的值,使流程跳转到不同的语句
switch语句的一般形式:
switch (表达式){ case 常量1:语句1
case 常量2:语句2
case 常量n:语句n[default :语句n+1]
}
例:要求按照考试成绩的等级输出百分制分数段, A等为85分以上, B等为70~84分C等为60~69分, D等为60分以下。成绩的等级由键盘输入。
#include "stdio.h"int main(){char grade; //创建字符型变量 printf("请输入你的成绩!\n"); //屏幕显示scanf("c",&grade); //获取输入的字符switch (grade) { //switchcase 'A':printf("85~100\n");break;//输入A会输出的语句case 'B':printf("70~84\n");break;case 'C':printf("60~69\n");break;case 'D':printf("<60\n");break;default:printf("你输入的成绩无效!");}return 0;}
break的重要性 如果没有break,当你输入A的时候,他就会把以下的语句全部执行;
#include "stdio.h"int main(){char grade; //创建字符型变量printf("请输入你的成绩!\n"); //屏幕显示scanf("c",&grade); //获取输入的字符switch (grade) { //switchcase 'A':printf("85~100\n");case 'B':printf("70~84\n");case 'C':printf("60~69\n");case 'D':printf("<60\n");default:printf("你输入的成绩无效!");}return 0;}
考点梳理