打印

《C语言教程》05章 if语句和switch语句

[复制链接]
715|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
niuyaliang|  楼主 | 2015-3-16 10:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、if语句
在计算机如此普及的今天,if语句的功能介绍就不说了。其基本语法如下:
//写法一
if (条件表达式) {
    语句
}

//写法二
if (条件表达式) {
    语句
}
else {
    语句
}

//写法三
if (条件表达式) {
    语句
}
else if (条件表达式) {    //else if (条件表达式){语句}部分可重复n遍
    语句
}
else {
    语句
}



相关帖子

沙发
niuyaliang|  楼主 | 2015-3-16 10:01 | 只看该作者
    else块只能出现在if语法的最后,且最多只能出现1次。else if块能出现若干次,但只能在if块的后面,不能在else块的前面。当各块里面的语句只有一句时,括号{}可以省略。不建议省略,因为省略后下面的语句让人容易糊涂。
//易让人看错的写法                        //表示的是下面的意思
if (x == 1)                               if (x == 1) {
    if (y == 1)                               if (y == 1)
        printf("x和y都等于1");                    printf("x和y都等于1");
else                                          else
    printf("我其实是y==1的else");                 printf("我其实是y==1的else");
                                          }

使用特权

评论回复
板凳
niuyaliang|  楼主 | 2015-3-16 10:02 | 只看该作者
二、switch语句
    switch语句完全可以用if语句代替,每一个case块的最后一句语句要有break语句,否则将运行到下一个case块中去。还需要注意的是,switch语句只适用于基本类型的变量作条件(包括扩充基本类型)。default块可以省略,但小雅建议您不要省略,即使不用也加上。
//基本类型的变量         //假定int i;            //假定char str[];以下是错误的
switch (变量) {          switch (i) {            switch (str) {
    case 表达式1:            case 1:                 case "Sunday":
        语句                     语句                    语句
        break;                   break;                  break;
    case 表达式2:            case 2:                 case "Monday":
        语句                     语句                    语句
        break;                   break;                  break;
    ···                   ···                  ···
    case 表达式n:            case 10:                case "Friday":
        语句                     语句                    语句
        break;                   break;                  break;
    default:                 default:                default:
        语句                     语句                    语句
        break;                   break;                  break;
}                        }                       }

使用特权

评论回复
地板
niuyaliang|  楼主 | 2015-3-16 10:33 | 只看该作者
三、( ? :)运算符
(表达式 ? 值1 :值2)这是带运算符的表达式,意思是:如果“表达式”的值为“真”,则返回“值1”,否则返回“值2”。if是控制语句而不是运算符,也不是表达式。
y = (x==2 ? 100 : 50) ;

//写成如下相同功能的if语句
if (x == 2) {
    y = 100;
}
else {
    y = 50;
}

使用特权

评论回复
5
niuyaliang|  楼主 | 2015-3-16 10:35 | 只看该作者
四、关于逻辑表达式
    逻辑表达式又叫布尔表达式,前面章节已经说过,布尔表达式只有2个值:TRUE和FALSE,即“真”和“假”。这其实是整型,0代表FALSE,0以外全是TRUE。因此逻辑表达式的写法就变得眼花潦乱。
//x不等于0时为true     //同样的写法
if (x) {               if (x != 0) {
    y = 100 ;              y = 100 ;
}                      }
else {                 else {
    y = 50 ;               y = 50 ;
}                      }
//x等于0时为true     //同样的写法                //少写=,意义就不一样了
if (!x) {               if (x == 0) {            if (x = 0) {    //将0赋给x
    y = 100 ;              y = 100 ;                y = 100 ;    //不可能运行这一句
}                      }                         }
else {                 else {                    else {
    y = 50 ;               y = 50 ;                 y = 50 ;
}                      }                         }

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝