第4章 选择结构程序设计

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) //判断输入的是否为123
            printf("密码输入正确!");  //是返回正确
        else
            printf("密码输入错误"); //不是返回错误
        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("猜小了");
        else
            printf("猜大了");
}


if语句的一般形式

        if (表达式) 语句1

                [else语句2]

关系表达式        逻辑表达式

数值表达式        任意类型表达式

方括号内的部分为可选的

简单的语句复合语句另一个if语句等

4.选择结构的嵌套

        在if语句中又包含一个或多个if语句称为if语句的嵌套

        

if( )
    if()语句1
    else 语句2
else
    if() 语句3
    else 语句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++; //不成立
        else
            a--;    //执行      1--  =0
        printf("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) {        //switch
            case '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) {        //switch
            case '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;

}

考点梳理

posted @ 2023-10-14 17:41  YJlio  阅读(42)  评论(0编辑  收藏  举报  来源