04. 程序结构——(选择结构)

程序结构——(选择结构)

 

选择结构

 

一、if 语句和用 if 语句构成的选择结构

if 的语法格式:

if(任意的常量、变量、表达式)
{
      a;
      b;
}
      C;

注意:若 if 中的表达式是0:False,若 if 中的表达式非0:True

 

#include<stdio.h>

int main()
{
    int score;

    scanf("%d",&score);    //  50

    if(score>=60)
    {
       printf("合格\n");
    }
    else
    {
        printf("不合格\n");
    }

     return 0;

}

 

#include<stdio.h>

int main()
{
    int score;

    scanf("%d",&score);

    if(score<60)
    {
        printf("不合格\n");
    }
    else
    {
        if(score>=90)
        {
            printf("优秀\n");
        }
        else
        {
            printf("合格\n");
        }
    }

    return 0;

}

注意:if else 的配对原则:★★★★

else 只跟在 else 前面的、离 else 最近的、还没有配对 if 进行配对(就近原则

 

★★★★

如果 if 省略后面的 {} , if  和 else 只认紧跟其后的第一条语句才是 if 和 else 中的语句(注意:if 与 else 后面不加 “;”,一旦加了 “;” 则意味着 if 或 else 后跟着一个空语句),if 和 else是属于21 的选择结构 ,既不能实现22,也不能实现20

 

示例:判断年份是平年还是闰年:

//判断年份是平年还是闰年:

#include<stdio.h>

int main()
{
    int year;

    scanf("%d",&year);

    if(year%400==0 || (year%4==0 && year%100!=0))
    {
        printf("闰年\n");
    }
    else
    {
        printf("平年\n");
    }

    return 0;

}

 

示例:输入一个分钟数,判断这个分钟数等价于几小时几分钟

//输入一个分钟数,判断这个分钟数等价于几小时几分钟

#include<stdio.h>

int main()
{
    int min, h, m;    //h(小时)  m(分钟)

    scanf("%d", &min);    //200

    h = min/60;
    m = min-min/60*60;    //或 m = min%60   m = min-h*60

    printf("%d小时%d分钟\n", h, m);    //3小时20分钟

    return 0;

}

 

 

二、条件表达式构成的选择结构

1、 条件运算符★★★

条件运算符由两个运算符号组成,它们是:( ? : )这是C语言提供的唯一的一个三目运算符

 

2、由条件运算符构成的条件表达式

形式如下:

表达式1 ? 表达式2 : 表达式3;

 

3、条件表达式的运算功能

    当 “表达式1” 的值非零时,求出 “表达式2” 的值,此时 “表达式2” 的值就是整个条件表达式的值;

     当 “表达式1” 的值为零时,求出 “表达式3” 的值,此时 “表达式3” 的值就是整个条件表达式的值;

 

代码:

#include<stdio.h>

int main()
{
    int x=6, y=5, max;

    if(x > y)
    {
        max = x;
    }
    else
    {
        max = y;
    }

    printf("%d\n", max);

    return 0;

}

等价于

#include<stdio.h>

int main()
{
    int x=6, y=5, max;

    max=x>y ? x : y;

    printf("%d\n", max);

    return 0;

}



 

 

三、switch语句以及用switch语句和break构成的选择结构

switch语句形式如下:

switch(表达式)
{
    case 常量表达式1: 语句1
    case 常量表达式2: 语句2
    ……
    case 常量表达式n: 语句n

    default: 语句n+1

}

 

代码:

#include<stdio.h>

int main()
{
    int score;

    scanf("%d",&score);    // 5优秀  4良好  3及格   0--2不及格

    switch(score)
    {
        case 5:
            printf("优秀\n");

        case 4:
            printf("良好\n");

        case 3:
            printf("合格\n");
   
        default:    //默认当所有的case条件都不匹配时,会自动执行default标号后的语句
            printf("不合格\n");
    }

    return 0;

}

 

在switch语句体中使用break语句:

#include<stdio.h>

int main()
{
    int score;

    scanf("%d", &score);    //   5:优秀  4:良好  3:合格   0--2  不合格

    switch(score)
    {
        case 5:
            printf("优秀\n");
            break;    //  终止switch的执行,跳出switch{}   执行switch{}后面的语句

        case 4:
            printf("良好\n");
            break;

        case 3:    //case后面只能出现常量表达式,不能出现变量
            printf("合格\n");
            break;

        default:
            printf("不合格\n");
    }

    return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值