• 【学习笔记】【C语言】选择结构-if


    1.if的第1种结构
    if(条件)
    {
        语句1;
        语句2;
        ......
    }
    如果if右边小括号()中的条件成立,也就是为“真”时,就会执行大括号{}中的语句;

    如果条件为假,就不执行大括号{}中的语句。这里的if是关键字。

    C语言规定所有非0值都为“真”


     2.if的第2种结构
    if(条件1)
    {
         语句1;
         语句2;
         ......
    }
    else
    {
       
    }
    如果if右边小括号()中的条件成立,也就是为“真”时,就会执行大括号{}中的语句,

    如果条件为假,就执行else中{}里面的语句。


     3.if的第3种结构
    if(条件1)
    {
         语句1;
         语句2;
         ......
    }
    else if(条件2)
    {
     
    }
    else if(条件3)
    {
     
    }
    else if(条件4)
    {
     
    }
    else
    {
     
    }

    如果if右边小括号()中的条件1成立,也就是为“真”时,就会执行大括号{}中的语句,

    如果条件1不成立就判断条件2成不成立,成立就执行不成立就继续往下走判断条件3,以此类推

    如果如果所有的条件为假,就执行else中{}里面的语句。

     注意:这么多大括号中,只有1个大括号内的代码会被执行。
     
     4.if的第4种结构

    如果if后面大括号{}中只有一行代码时,可以省略大括号。
    if (条件)
       语句1;

    为了保证代码的可读性,不建议省略大括号!!!

    5.语句嵌套

    if语句内部是可以嵌套其他if语句的,如下面的例子

    int a = 7;

    if ( a > 0 )
    {
        printf("a的值大于0 ");
       
           if ( a<9 )
           {
               printf("a的值小于9");
           }
    }

    6.注意

    1》

    千万不要在if的小括号后面添加分号

    if ( a>8 );

    2》

    假设本来是想判断a是否为0,那么本应该写if (a == 0),若误写成了if (a = 0),那将是一件非常可怕的事情,因为编译器又不报错,这样的BUG就难找了。因此,像a==0这样的表达式,最好写成0==a,若误写成0=a,编译器会直接报错。

    // 不推荐
    if (a == 0) {
    }

    // 推荐
    if (0 == a) {
    }

    3》
    在C语言中,可以不保存关系运算的结果。

    int a = 10;
    a > 10;
    a == 0;

    这里又是一个陷阱,假设你的本意是想给a赋值为0,那么本应该写a = 0; ,若误写成a == 0; ,那将又是一个非常难找的BUG,因为编译器根本不会报错。

    7.练习

     1 /*
     2  输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
     3  A:90~100
     4  B:80~89
     5  C:70~79
     6  D:60~69
     7  E:0~60
     8 */
     9 
    10 #include <stdio.h>
    11 
    12 int main()
    13 {
    14     // 1.提示输入
    15     printf("请输入分数值:
    ");
    16     
    17     // 2.接收输入
    18     int score;
    19     scanf("%d", &score);
    20     
    21     // 3.判断等级 (性能最高)
    22     if (score>=90 && score<=100) { // [90, 100]
    23         printf("A
    ");
    24     } else if (score>=80) { // [80, 89]
    25         printf("B
    ");
    26     } else if (score>=70) { // [70, 79]
    27         printf("C
    ");
    28     } else if (score>=60) { // [60, 69]
    29         printf("D
    ");
    30     } else { // (-∞, 59]
    31         printf("E
    ");
    32     }
    33     
    34     /* 性能中等
    35     if (score>=90 && score<=100) { // [90, 100]
    36         printf("A
    ");
    37     } else if (score>=80 && score<=89) { // [80, 89]
    38         printf("B
    ");
    39     } else if (score>=70 && score<=79) { // [70, 79]
    40         printf("C
    ");
    41     } else if (score>=60 && score<=69) { // [60, 69]
    42         printf("D
    ");
    43     } else { // (-∞, 59]
    44         printf("E
    ");
    45     }*/
    46     
    47     /* 性能最差
    48     if (score>=90 && score<=100) { // [90, 100]
    49         printf("A
    ");
    50     }
    51     
    52     if (score>=80 && score<=89) { // [80, 89]
    53         printf("B
    ");
    54     }
    55     
    56     if (score>=70 && score<=79) { // [70, 79]
    57         printf("C
    ");
    58     }
    59     
    60     if (score>=60 && score<=69) { // [60, 69]
    61         printf("D
    ");
    62     }
    63     
    64     if (score<=59) { // (-∞, 59]
    65         printf("E
    ");
    66     }*/
    67     return 0;
    68 }
  • 相关阅读:
    獲取XML文檔節點的值
    Asp.net之数组应用
    读写XML文档
    C#区分中英文统计字符串的长度
    vs2005常用快捷键
    基础知识
    中国的十二生肖原来还代表着对人品格的要求
    学习OO思想
    改变系统时间c#
    用C#创建各种类型的wave文件
  • 原文地址:https://www.cnblogs.com/dssf/p/4564584.html
Copyright © 2020-2023  润新知