【黑马程序员】【C语言】选择结构-if语句

来源:互联网 发布:淘宝上怎么做虚拟充值 编辑:程序博客网 时间:2024/05/16 09:56

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\n");  
    
       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("请输入分数值:\n");16     17     // 2.接收输入18     int score;19     scanf("%d", &score);20     21     // 3.判断等级 (性能最高)22     if (score>=90 && score<=100) { // [90, 100]23         printf("A\n");24     } else if (score>=80) { // [80, 89]25         printf("B\n");26     } else if (score>=70) { // [70, 79]27         printf("C\n");28     } else if (score>=60) { // [60, 69]29         printf("D\n");30     } else { // (-∞, 59]31         printf("E\n");32     }33     34     /* 性能中等35     if (score>=90 && score<=100) { // [90, 100]36         printf("A\n");37     } else if (score>=80 && score<=89) { // [80, 89]38         printf("B\n");39     } else if (score>=70 && score<=79) { // [70, 79]40         printf("C\n");41     } else if (score>=60 && score<=69) { // [60, 69]42         printf("D\n");43     } else { // (-∞, 59]44         printf("E\n");45     }*/46     47     /* 性能最差48     if (score>=90 && score<=100) { // [90, 100]49         printf("A\n");50     }51     52     if (score>=80 && score<=89) { // [80, 89]53         printf("B\n");54     }55     56     if (score>=70 && score<=79) { // [70, 79]57         printf("C\n");58     }59     60     if (score>=60 && score<=69) { // [60, 69]61         printf("D\n");62     }63     64     if (score<=59) { // (-∞, 59]65         printf("E\n");66     }*/67     return 0;68 }

0 0
原创粉丝点击