C语言随堂笔记---条件分支结构

来源:互联网 发布:java能做什么好玩的 编辑:程序博客网 时间:2024/05/22 09:44

1.关系表达式

 1.返回结果“真”--非0值和“假”--0值
    2.关系逻辑运算符(<,>,<=,>=,==,!=)
      使用关系运算符构建的关系表达式的结果为两种:0和1,
    分别代表假和真字符型数据也可以进行关系运算
    3.字符型的关系运算
      字符型数据本质上也是一种整型数据
      在比较时字符型使用其对应的ASCII码值进行比较
      使用字符型和整型进行比较时同样使用字符对应的ASCII值跟整型数据进行比较

eg.

    int i=10;    double b=9;    printf("i>b:%d\n",i>b);//0为假,非0为真    char c1='A';    char c2='a';    printf("c1>c2:%d\n",c1>c2);    int num1=20;    int result=c2<=num1;    printf("c2<=num1:%d\n",result);    printf("i==b:%d\n",i==b);//虽然类型不同,但值相同


2.逻辑运算符

需要多个条件叠加判断时需要使用逻辑运算;
     逻辑运算可以构建复杂的关系表达式;
     逻辑运算包括三种:
        与运算(&&)
          表达式1 && 表达式2
        或运算(||)
          表达式1 || 表达式2
        非运算(!)
          ! 表达式
     逻辑运算时将非0作为真,0作为假处理;

eg.

    //闰年    int year;    printf("请输入一个年份:\n");    scanf("%d",&year);    if((year%4==0&&year%100!=0)||year%400==0)        printf("%d为闰年\n",year);    else        printf("%d不为闰年\n",year);    printf("-----------------------------------\n");


运算符的优先级

运算符结合性( )从左到右一元运算符,包括一元-,++,--,!从右到左*,/,%从左到右+,-,二元从左到右<,<=,>,>=从左到右==,!=从左到右&&从左到右(或)从左到右+=,-=,*=,/=从右到左
逻辑运算短路

因为逻辑运算有短路情况,所以造成这种结果,短路情况有以 下两种:

与运算时:表达式1&&表达式2,如果表达式1为假,表达式2不再被执行
      或运算时:表达式1||表达式2,如果表达式1为真,表达式2不再被执行

eg.

    //短路    int i=0,j=5;    int rst=i++&&j++;    printf("rst=%d,i=%d,j=%d",rst,i,j);    printf("-----------------------------------\n");


程序分支

C语言中分支包括:if分支和switch分支两种;

if分支语句中包含三种情况:

if分支语句
       if..else分支语句
       if..elseif..else分支链 

* 当分支语句只有一条时,花括号可以省略,如果分支语句有多条需要使用花括号

* switch分支:break跳出循环;若没加break,case符合条件执行完,会接着往下执行

eg.

    //例,if    int i;    printf("请输入一个整数:\n");    scanf("%d",&i);    if(i<0)        i=-i;     printf("i=%d\n",i);    printf("-----------------------------------\n");    //例,if...else    char isRain;    printf("今天是否有雨(Y/N):\n");    scanf("%c",&isRain);    if(isRain=='Y'||isRain=='y')        printf("下雨了,需要带雨具!\n");    else        printf("没下雨,不需要带雨具!\n");    例,if...else if...else    double temp;    printf("请输入今天的天气:\n");    scanf("%d",&temp);    if(temp<15)        printf("今天天气寒冷!请多穿衣服!\n");    else if(temp>=15&&temp<29)        printf("温度适中,可随意穿\n");    else        printf("高温炎热\n");    printf("-----------------------------------\n");    //例,成绩    double t;    printf("请输入成绩!\n");    scanf("%lf",&t);    if(t>=90&&t<=100){        printf("您的成绩优秀!\n");    }else if(t>=80&&t<90){        printf("您的成绩良好!\n");    }else if (t>=60&&t<80){        printf("您的成绩OK!\n");    }else if (t>=0&&t<60){        printf("您的成绩弱爆了!\n");    }else{        printf("输入的成绩范围0-100!\n");    }


三元运算符

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

 判断表达式1的结果:
      如果为真,整个三元运算表达式的结果为表达式2的值;
      如果为假,整个三元运算表达式的结果为表达式3的结果
   

eg.

    //...?... : ...三元运算符    int country;    char gender;    printf("您是不是中国人(1/0):\n");    scanf("%d%c",&country,&gender);    printf("您的性别('F/M')\n");    scanf("%c",&gender);    double Height=country==1?gender=='F'?1.60:1.70:gender=='F'?1.60:1.75;    printf("Height%.2f\n",Height);


随堂笔记为个人学习笔记,若有错误,望指出,谢谢!!
0 0