zoukankan      html  css  js  c++  java
  • C语身教程第三章: C言语程序企图起源(4)

    分支布局程序

    关系运算符和表达式

    在程序中几次需要比较两个量的大小关系, 以决意程序下一步的义务。比较两个量的运算符称为关系运算符。 在C言语中有以下关系运算符:
    < 小于
    <= 小于或等于
    > 大大于
    >= 大大于或等于
    == 等于
    != 不等于
    关系运算符都是双目运算符,其连系性均为左连系。 关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。
    关系表达式
    关系表达式的平凡编制为: 表达式 关系运算符 表达式 歧:a b>c-d,x>3/2,'a' 1<c,-i-5*j==k 1;都是合法的关系表达式。由于表达式也可以又是关系表达式。 是以也容许出现嵌套的状况,歧:a>(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。
    如: 5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不设立配置,故其值为假,即为0。
    void main(){
    char c='k';
    int i=1,j=2,k=3;
    float x=3e 5,y=0.85;
    printf("%d,%d\n",'a' 5<c,-i-2*j>=k 1);
    printf("%d,%d\n",1<j<5,x-5.25<=x y);
    printf("%d,%d\n",i j k==-2*j,k==j==i 5);
    }
    char c='k';
    int i=1,j=2,k=3;
    float x=3e 5,y=0.85;
    printf("%d,%d\n",'a' 5<c,-i-2*j>=k 1);
    printf("%d,%d\n",1<j<5,x-5.25<=x y);
    printf("%d,%d\n",i j k==-2*j,k==j==i 5);
    在本例中求出了种种关系运算符的值。 字符变量是以它对应的ASCII码到场运算的。关于含多个关系运算符的表达式,如k==j==i 5,根据运算符的左连系性,先盘算k==j,该式不设立配置,其值为0,再盘算0==i 5,也不设立配置,故表达式值为0。

    逻辑运算符和表达式

    逻辑运算符C言语中提供了三种逻辑运算符 && 与运算 || 或运算 ! 非运算 与运算符&&和或运算符||均为双目运算符。具有左连系性。 非
    运算符!为单目运算符,具有右连系性。逻辑运算符和别的运算符优先级的关系可表示如下:
    遵照运算符的优先顺序可以得出:
    a>b && c>d等价于(a>b) && (c>d)
    !b==c||d<a等价于((!b)==c)||(d<a)
    a b>c && x y<b等价于((a b)>c) && ((x y)<b)
    逻辑运算的值
    逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则礼貌如下:
    1.与运算&&到场运算的两个量都为真时,成绩才为真,不然为假。歧,5>0 && 4>2,由于5>0为真,4>2也为真,相与的成绩也为真。
    2.或运算||到场运算的两个量只需有一个为真,成绩就为真。 两个量都为假时,成绩为假。歧:5>0||5>8,由于5>0为真,相或的成绩也就为真
    3.非运算!到场运算量为真时,成绩为假;到场运算量为假时,成绩为真。
    歧:!(5>0)的成绩为假。
    固然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反以前在鉴定一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。歧:由于5和3均为非“0”是以5&&3的值为“真”,即为1。
    又如:5||0的值为“真”,即为1。
    逻辑表达式逻辑表达式的平凡编制为: 表达式 逻辑运算符 表达式 其中的表达式可以又是逻辑表达式,从而组成了嵌套的状况。歧:(a&&b)&&c根据逻辑运算符的左连系性,上式也可写为: a&&b&&c 逻辑表达式的值是式中种种逻辑运算的最初值,以“1”和“0”分辩代表“真”和“假”。
    void main(){
    char c='k';
    int i=1,j=2,k=3;
    float x=3e 5,y=0.85;
    printf("%d,%d\n",!x*!y,!!!x);
    printf("%d,%d\n",x||i&&j-3,i<j&&x<y);
    printf("%d,%d\n",i==5&&c&&(j=8),x y||i j k);
    }
    本例中!x和!y分辩为0,!x*!y也为0,故其输入值为0。由于x为非0,故!!!x的逻辑值为0。对x|| i && j-3式,先盘算j-3的值为非0,再求i && j-3的逻辑值为1,故x||i&&j-3的逻辑值为 1。对i<j&&x<y式,由于i<j的值为1,而x<y为0故表达式的值为1,0相与,最初为0,对i==5&&c&&(j=8)式,由于i==5为假,即值为0, 该表达式由两个与运算组成,所以整个表达式的值为0。关于式x y||i j k 由于x y的值为非0,故整个或表达式的值为1。

    if语句

    用if语句可以构身分支布局。它根据给定的条件遏制鉴定, 以决意执行某个分支程序段。C言语的if语句有三种根本编制。

    1.第一种编制为根本编制 if(表达式) 语句; 其语义是:如果表达式的值为真,则执行其后的语句, 不然不执行该语句。其历程可表示为下图
    void main(){
    int a,b,max;
    printf("\n input two numbers: ");
    scanf("%d%d",&a,&b);
    max=a;
    if (max<b) max=b;
    printf("max=%d",max);
    }
    输入两个整数,输入其中的大大数。
    scanf("%d%d",&a,&b);
    max=a;
    if (max<b) max=b;
    printf("max=%d",max);

    本例程序中,输入两个数a,b。把a先付与变量max,再用if语句辨别max和b的大小,如max小于b,则把b付与max。是以max中老是大大数,最初输入max的值。
    2.第二种编制为if-else编制
    if(表达式)
    语句1;
    else
    语句2;
    其语义是:如果表达式的值为真,则执行语句1,不然执行语句2 。
    void main(){
    int a, b;
    printf("input two numbers: ");
    scanf("%d%d",&a,&b);
    if(a>b)
    printf("max=%d\n",a);
    else
    printf("max=%d\n",b);
    }
    输入两个整数,输入其中的大大数。改用if-else语句辨别a,b的大小,若a大大,则输入a,不然输入b。



    版权声明: 原创作品,容许转载,转载时请务必以超链接编制标明文章 原始出处 、作者信息和本声明。不然将追查法律责任。

  • 相关阅读:
    表数据文件DBF的读取和写入操作
    【转】Hive SQL的编译过程
    Hadoop配置机架感知
    pssh安装和使用
    hive12启动报错org.apache.thrift.server.TThreadPoolServer.<init>(Lorg/apache/thrift/server/TThreadPoolServer$Args;)
    【转】Oozie4.2.0配置安装实战
    【转】别因为要学的太多反而压垮自己
    【转】hadoop2.6 配置lzo压缩
    hive 启动 Specified key was too long; max key length is 767 bytes解决办法
    【转】linux configure报错configure: error: C++ preprocessor “/lib/cpp” fails sanity 的解决办法
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975619.html
Copyright © 2011-2022 走看看