流程控制 day5

一、流程控制的三种结构:

  顺序结构 
  分支结构 
  循环结构 

(1)顺序结构:代码一路顺下来
(2)分支结构:选择 

根据条件—>做出判断——>做出选择 

构造条件则需要用到关系运算逻辑运算,而关系运算是逻辑运算中比较简单的一种

二、关系运算 

所谓“关系运算“实际上是“比较运算”。将 两个值进行比较,判断其比较的结果是否符合给定的条件。
 1. 关系运算符
 (1) <  (小于)
 (2) <=(小于等于)
 (3) >  (大于)
 (4) >=(大于等于)
(优先级相同 高)
 (5) ==(等于)
 (6) != (不等于)
(优先级相同 低)

 2.关系表达式

关系表达式的值是一个逻辑值,即“真”或“假 。

例如,关系表达式"5==3" 的值为“假",“ 5>=0"的值为“真”。

C 语言没有逻辑型数据(C++ 有逻辑型变量和逻辑型常量,以True 表示“真”,以 False 表示“假")。在C的逻辑运算中,以 "1"代表“真",以 "0" 代表 “假”。
   

总结:
关系运算的结果 只有 0 或 1 ,这个结果 用int型来存储的 


三、逻辑运算

逻辑运算实际是表示表达式之间的关系

例如(表达式1 && 表达式2 

 1.逻辑运算符
 && 逻辑与

    规则: 一假则假

  ||  逻辑或

    规则: 一真则真 

 ! 逻辑非

    规则: 真假相对 

 2.逻辑表达式
逻辑表达式的值应该是一个逻辑量“真”或“假”。 语言编译系统在表示逻辑运算结果时,以数值代表“真”,以0 代表“假”,但在判断一个量是否为“真”时,以0代表“假“,以非0代表“真”,即将一个非零的数值认作为“真”。


注意:         
&& 和 || 具有截断特性(短路特性) :

即在逻辑运算中,优先算左边的表达式,如果左边表达式能直接确定整个表达式结果,则无需再运算右边表达式。
 

三、if 语句

 1.形式一:if(表达式)语句
 

  ...
  if (表达式)
  {
      语句
  } //复合语句 
  ···


  语义:
  如果 表达式 为真 
  则 执行 if 下的 语句 ,语句执行完后,继续执行if后的代码
  如果 表达式 为假 
  则 跳过 if 下的 语句,执行if语句后面的代码


  
注意:if 后面没有分号(;) 

  
二、形式二:双分支 

    ...
    if ( 表达式)
    {
        语句1
    }    
    else 
    {
        语句2
    }
    ....
    

语义:

练习1:
   从键盘输入两个数,
   找出最大值  

#include<stdio.h>

int main(void)
{
    int n1,n2,max;
    printf("Please:");
    scanf("%d %d,&n1,&n2);

 if (n1 > n2)
    {
        printf("max = %d\n",n1);
    
    }
    else
    {
    printf("max = %d\n",n2);
    }

    return 0;
}

练习2:
   找出三个数中的最大值 

#include<stdio.h>

int main(void)
{
    int n1,n2,n3,max;
    printf("Please:");
    scanf("%d %d %d",&n1,&n2,&n3);

    if (n1 > n2)
    {
        max = n1;
    }
    else
    {
        max = n2;

    }
    
    
    if (n3 > max)
    {
        max = n3;
    }
    printf("max = %d\n",max);

    return 0;
}


    
 3.形式三

···

 if( 表达式1)
    语句1
else if( 表达式2) 
    语句2
else if( 表达式3) 
    语句3
else if( 表达式m) 
    语句m

else 
    语句n

    语义:

    
注意:每个判断的 if 后面不要写分号

练习3:
   从键盘上输入一个学生分数 
   打印出对应等级  分数 
   A  - 90 ~ 100 
   B  - 80 ~ 89 
   C  - 70 ~ 79
   D  - 60 ~ 69
   E  - <60

 

#include<stdio.h>

int main(void)
{
    int n;
    printf("please:");
    scanf("%d",&n);

    if (n <= 100 && n >= 90)
    {
        printf("A\n");
    }
    else if(n >= 80 && n <90)
    {
        printf("B\n");
    }
    else if(n >= 70 && n <80)
    {
        printf("C\n");
    }
    else if(n >= 60 && n <70)
    {
        printf("D\n");
    }
    else if(n >= 0 && n <60)
    {
        printf("E\n");
    }
    else 
    {
        printf("Stupid!\n");
    }

    return 0;
}



四、switch 语句

语法格式:
    switch (整型表达式)
    {
        case 常量表达式1:
             语句1
             break;
        case 常量表达式2:
             语句2
             break;
        case 常量表达式D:
             语句n
             break;
        default :
             语句n+l
             break;
    }
   

语义:
首先,求解"表达式"
根据表达式的结果 ,
到下面case后依次进行匹配,
如果与case 后的常量表达式的值一致,
则匹配成功,
执行该case下面的"语句"
直到遇到了 break
或 switch 的右花括号 }
           
 注意:
 1.switch后 "表达式" ---结果不能是 浮点型 
 2.case 后面 是常量表达式,不能出现变量
 3.default 写错 没有语法问题,但是达不到程序效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值