C语言条件句的实例教程

128 阅读2分钟

C语言条件语句的介绍:if/else和switch

任何编程语言都为程序员提供了进行选择的能力。

我们想在某些情况下做X,而在其他情况下做Y。

我们想检查数据,并根据这些数据的状态进行选择。

C语言为我们提供了2种方法来做到这一点。

第一个是if 语句,以及它的else 帮助器,第二个是switch 语句。

if

if 语句中,你可以检查一个条件是否为真,然后执行大括号中提供的块。

int a = 1;

if (a == 1) {
  /* do something */
}

如果原来的条件是假的,你可以附加一个else 块来执行一个不同的块。

int a = 1;

if (a == 2) {
  /* do something */
} else {
  /* do something else */
}

注意一个常见的错误来源--在比较中总是使用比较运算符== ,而不是赋值运算符= ,否则if ,条件检查总是为真,除非参数是0 ,例如你这样做。

int a = 0;

if (a = 0) {
  /* never invoked */
}

为什么会出现这种情况?因为条件检查会寻找一个布尔值的结果(比较的结果),而0 数字总是相当于一个假值。其他都是真的,包括负数。

你可以通过将多个if 语句堆叠在一起,拥有多个else 块。

int a = 1;

if (a == 2) {
  /* do something */
} else if (a == 1) {
  /* do something else */
} else {
  /* do something else again */
}

switch

如果你需要做太多的if / else / if块来进行检查,也许是因为你需要检查一个变量的准确值,那么switch ,对你来说非常有用。

你可以提供一个变量作为条件,并为你期望的每个值提供一系列的case 入口。

int a = 1;

switch (a) {
  case 0:
    /* do something */
    break;
  case 1:
    /* do something else */
    break;
  case 2:
    /* do something else */
    break;
}

我们需要在每个案例的结尾有一个break 关键字,以避免前一个案例结束后,下一个案例被执行。这种 "级联 "效应可以用一些创造性的方式来使用。

你可以在结尾处添加一个 "全面 "的案例,标记为default

int a = 1;

switch (a) {
  case 0:
    /* do something */
    break;
  case 1:
    /* do something else */
    break;
  case 2:
    /* do something else */
    break;
  default:
    /* handle all the other cases */
    break;
}