bigdecimal判断大于零_C语言零基础入门—选择结构程序设计?-

ed804d84f1521ba97cab09e181a3a2d8.png

C语言零基础入门—9.选择结构程序设计​

7338a17a3a99f12187d3e29f9b14b7bb.png
这一节我们讲解 选择结构程序设计

1. 前言

  • 我们先来谈一谈什么是选择程序设计。
  • 从第一节到前一节中我们讲解的都是顺序程序设计,当时我们说过,顺序设计的意思就是从上到下的执行每一行程序。
  • 但是我们的生活中,不可能任何事情都是从上到下的顺序执行吧。
  • 举一个栗子:小明考试之前,爸爸对他说:
    • 如果你数学考了90分以上,那么就奖励你一顿大餐。
    • 如果数学在70-90之间就奖励你一个篮球。
    • 如果数学成绩在60-70分之间就奖励你一本习题册。
    • 如果成绩在60分以下的话,就奖励你一个你最爱的大嘴巴子。
  • 这个例子就反驳了顺序程序设计的思路,因为这个栗子所做的事情就是,在数学成绩每一个区间内才执行相应的奖励。而不是小明考了95分之后,先奖励大餐,在奖励篮球,在奖励习题册,在给大嘴巴子。
  • 这个例子就是选择程序设计需要做的事情,根据区间不同,而选择不同的事情去做。

2. 选择程序设计

  • 选择程序设计有两种实现的形式
    • 1)使用if...else进行判断。
    • 2)使用switch...case进行选择。

2.1 if...else讲解

2.1.1 语法讲解

完整格式

if( 条件1 ){
    满足条件1,于是执行这里的代码。
}else if( 条件2 ){
    满足条件2,于是执行这里的代码。
}else if( 条件3 ){
    满足条件3,于是执行这里的代码。
}else{
    以上条件均不满足,执行这里的代码。
}
  • 语法中的 if 的中文意思就是:“如果”,所以我们要记住只要写出来if,那么我们就要在if后边加一个括号,在括号内写入要进行判断的事情。当括号内判断的事情成立了,才会执行对应的大括号 { } 内的语句。
    if( 条件1 ){
    满足判断条件1,于是执行这里的代码。
    }
    这一句的意思就是:如果 条件1 正确,就执行对应的{...}里边的代码
  • else的意思就是:“其他”,它的作用就是排除掉已经判断过的条件。
    else if( 条件3 ){
    满足条件3,于是执行这里的代码。
    }
    这一句的意思就是:我们排除掉条件1,条件2的情况,我们再来判断条件3,如果如果 条件3 正确,就执行对应的{...}里边的代码
  • 最后的else的含义就是:判断过前边的条件1,2,3之后,都没有进入相应的{...}的话,就执行最后一句的else后的大括号的代码。
    else{
    以上条件均不满足,执行这里的代码。
    }
    这一句的意思就是:以上条件均不满足的时候,就执行这里的{...}的内容。

栗子

  • 我门来写一下小明的栗子吧。
#include<stdio.h>

    void main(){
        float score;
        printf("请输入小明的成绩,以获得相应的奖励,成绩为:");
        scanf("%f",&score);

        if( score >= 90){
                printf("恭喜你,获得大餐一顿n");
        }else if(score < 90 && score >= 70){
                printf("恭喜你,获得篮球一个n");
        }else if(score < 70 && score >= 60){
                printf("恭喜你,获得练习册一本n");
        }else{
                printf("恭喜你,获得大嘴巴子一个n");
    }
}
  • 对应的结果是

b3db46a4ef45146265a737af97a1a568.png
  • 程序解读

9f46e87e6107864b4a9fa58a8a6eb046.png

2.1.2 格式拓展

  • 上边的格式是一个完整的用法,并且else...if可以有很多个,当然也可以有很少个,甚至可以没有。
  • 拓展1:只进行一次判断,不做其他处理。
if( ){
    
}
  • 拓展2:只进行一次判断,当判断不成立的时候再做出处理。
if( ){
    
}else{
    
}
  • 拓展3:进行多次判断。
if( ){
    
}else if(){
    
}else if(){
    
}
...
...
  • 大家细细品味一下就可以知道怎么使用了,这里再讲得太细会适得其反,如果真的不会,可以加我微信私聊。

2.2 switch讲解

2.2.1 语法讲解

  • switch与if都是条件判断的语句,但是又有着很显著的区别。
  • 我们通过上面的讲解会发现if判断的条件可以是区间范围,比如:if(成绩 >= 80 && 成绩 <= 90)的意思就是:如果成绩处于 80~90之间,这是区间的范围。当然特殊一点的区间就是值,因此if判断的条件也可以是一个准确值,比如:if(成绩 == 85)的意思就是:如果成绩是85(至于为什么是两个等号,我们下节讲),这是准确值的判断。
  • 然而switch判断的条件就是准确值的判断。由于是准确值,所以switch只适用于准确值数量较少的情况。(一般使用if较多,但是switch也有用处)。

完整格式

switch( 可以得出准确值的表达式 ){
    case 准确值1:
        满足准确值1时,应该执行的语句。
        break;
    case 准确值2:
        满足准确值2时,应该执行的语句。
        break;
    case 准确值3:
        满足准确值3时,应该执行的语句。
        break;
    ...
    default: 以上都不满足,则执行这里的语句
}
  • 语法中 switch( )之后的括号内填写的是可以得到准确值的表达式或者变量。
  • case后边紧跟一个空格,空格后边的准确值就是待判断的准确值。
  • 每一个该执行的语句后边都应该跟一个break,用于跳出此次switch的判断。(如果我们没有加break的话,就会把所有的case后边的语句都执行一次)
  • 最后的default就是当所有的case都不满足的时候,该执行这里的语句。通常用于输出不满足的原因。

栗子

  • 我们把一开始的成绩改为A,B,C,D等级进行评比。
  • 令成绩大于90分的为A,成绩是70~90的为B,成绩是60~70的为C,成绩小于60的为D。(我们之所以要这样子改是因为前边分析过,switch使用的是准确值进行判断的,如果不转化成等级的话,就要写0~100一个101个case了,不是我们想要的)
#include<stdio.h>

void main(){

        char score;
        printf("成绩处于  0~59之间,属于等级 D n");
        printf("成绩处于 60~69之间,属于等级 C n");
        printf("成绩处于 70~89之间,属于等级 B n");
        printf("成绩处于90~100之间,属于等级 A n");
        printf("请输入小明的成绩等级,以获得相应的奖励,等级为:");
        scanf("%c",&score);

        switch(score){
                case 'A' : printf("恭喜你,获得大餐一顿n");
                        break;
                case 'B' : printf("恭喜你,获得篮球一个n");
                        break;
                case 'C' : printf("恭喜你,获得练习册一本n");
                        break;
                case 'D' : printf("恭喜你,获得大嘴巴子一个n");
                        break;
                default: printf("等级输入有误,程序结束!n");
    }
}
  • 输入正确的等级:

05a7e5fb4bfa9e9e2af01c99a77b54fc.png
  • 输入错误的等级:

f303e211e50eb9c47ea99d665ee1e44d.png
  • 程序解读:

392217f2008cf1d6650c0b191aa598ba.png

3. 结束

  • 我们这一节先讲到这里,大家先看着两个程序了解下。
  • 我们下一节会解决下遗留的问题:
    • 逻辑表达式
    • break与continue
  • 在讲解一个程序:给定一个年份,如何计算出是不是闰年。

公众号:小小猿笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值