zoukankan      html  css  js  c++  java
  • 【C-分支结构】

    一、关系运算符 

    双目运算符 自左向右结合

    关系运算符的优先级低于算术运算符,高于赋值运算符

    1. <(小于)
    2. <=(小于或等于)
    3. >(大于)
    4. >=(大于或等于)
    5. ==(等于)
    6. !=(不等于)

    二、关系表达式 

    值为真或者假  用1和0表示 

    如:5>0的值为“真”,即为1;

    三、逻辑运算符

    与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性

    1. &&(与运算)
    2. ||(或运算)
    3. !(非运算)

    四、逻辑表达式的值

    值也为真和假两种,用1和0来表示。

    && 两个都为真才是真

    || 只要一个为真就是真 两个为假才是假

    ! 真时假,假时真

    注意一些隐式条件,有时不需要计算后面的式子

    如 int a = 3;

    if((a > 6) && (a = 4)){

      a = 5;

    }

    结果a还是为3   因为a>6 已经为假了,就不用执行 a = 4 了

    五、if语句

    第一种形式为基本形式:if
            if(表达式) 语句

    其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

     第二种形式为: if-else
    if(表达式) 
        语句1;
    else 
        语句2;
    其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。

     第三种形式为if-else-if形式
    前二种形式的if语句一般都用于两个分支的情况。当有多个分支选择时,可采用if-else-if语句,其一般形式为:
         if(表达式1)
            语句1;
        else  if(表达式2) 
            语句2;
        else  if(表达式3) 
            语句3;
            … 
        else  if(表达式m) 
            语句m;
        else
            语句n;
    其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。

    六、switch

    C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:
    switch(表达式){ 
        case 常量表达式1:  语句1;
        case 常量表达式2:  语句2;
        … 
        case 常量表达式n:  语句n;
        default:  语句n+1;
    }
    其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

    C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。


    在使用switch语句时还应注意以下几点:

    1. 在case后的各常量表达式的值不能相同,否则会出现错误。
    2. 在case后,允许有多个语句,可以不用{}括起来。
    3. 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
    4. default子句可以省略不用。

    七、条件运算符及表达式

    条件运算符的结合方向是自右至左。

    它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
        表达式1 ?  表达式2 : 表达式3

    其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。

    练习:计算器程序。用户输入运算数和四则运算符,输出计算结果。

      1. #include <stdio.h>
      2. int main(void){
      3.     float a,b;
      4.     char c;
      5.     printf("input expression: a+(-,*,/)b ");
      6.     scanf("%f%c%f",&a,&c,&b);
      7.     switch(c){
      8.         case '+': printf("%f ",a+b);break;
      9.         case '-': printf("%f ",a-b);break;
      10.         case '*': printf("%f ",a*b);break;
      11.         case '/': printf("%f ",a/b);break;
      12.         default: printf("input error ");
      13.     }
      14.     return 0;
      15. }

     

  • 相关阅读:
    Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
    数据库事务
    Consider defining a bean of type 'redis.clients.jedis.JedisPool' in your configuration.
    Mybatis+SpringBoot 项目All elements are null
    docker安装Sentinel
    docker安装nacos
    Docker 配置 Seata 集成 Nacos
    mybatis转义反斜杠_MyBatis Plus like模糊查询特殊字符_、、%
    在linux上配置Maven环境变量
    spring cache 学习——整合 redis 实现声明式缓存配置
  • 原文地址:https://www.cnblogs.com/zhuimengfire/p/4416083.html
Copyright © 2011-2022 走看看