分支

一个程序默认是按照代码的顺序执行下来的,有时我们需要选择性的执行某些语句,这时候就需要分支的功能来实现。对于分支的选择应该使用恰当的语句,这样可以提升程序效率。

if 语句

基本 if 语句

以下是基本 if 语句的结构。

1
2
3
if (表达式) {
  语句;
}

if 语句通过对表达式进行判断,若表达式为真(非 0)则执行语句,否则不执行。

if...else 语句

1
2
3
4
5
if (表达式) {
  语句;
} else {
  语句;
}

if...else 语句和 if 语句类似,else 不需要再写判断表达式。两者区别在于当 if 语句的判断表达式为假时,直接执行 else 里的语句。

else if 语句

1
2
3
4
5
6
7
8
9
if (表达式1) {
  语句1;
} else if (表达式2) {
  语句2;
} else if (表达式3) {
  语句3;
} else {
  语句4;
}

else if 语句是 if 和 else 的组合,对多个条件进行判断并选择不同的语句分支。在最后一条的 else 语句则不需要再写判断表达式。

switch 语句

1
2
3
4
5
6
7
8
9
switch (整数类型的表达式) {
  case 常量表达式1: {
    语句1;
  }
  case 常量表达式2: {
    语句2;
  }
  default: { 语句3; }
}

switch 语句的括号中的表达式就是要判断的条件必须是整数类型的表达式(如 int/char/bool 以及它们的修饰类型),case 检验条件是否等于该表达式,若等于则执行其后的语句直到 switch 块末尾;若不等于所有 case 的表达式则执行 default 之后的语句。如果不需要默认执行的操作,那么 switch 中也可以没有 default 语句。

1
2
3
4
5
6
int i = 1;  //这里的 i 的数据类型是整型 ,满足整数类型的表达式的要求
switch (i) {
  case 1: {
    cout << "OI WIKI" << endl;
  }
}
1
2
3
4
5
6
7
8
char i = 'A';
// 这里的 i 的数据类型是字符型 ,但 char
// 也是属于整数的类型,满足整数类型的表达式的要求
switch (i) {
  case 'A': {
    cout << "OI WIKI" << endl;
  }
}

switch 语句中还要根据需求加入 break 语句进行中断,否则检验条件满足后接下来的所有 case 里的语句和 default 里的语句都会被运行。具体例子可看下面的示例。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
char i = 'B';
switch (i) {
  case 'A': {
    cout << "OI" << endl;
    break;
  }
  case 'B': {
    cout << "WIKI" << endl;
  }
  default: { cout << "Hello World" << endl; }
}

以上代码运行后输出的结果为 WIKI 和 Hello World,如果不想让 default 分支的内容被输出就需要 break 了,具体例子可看下面的示例。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
char i = 'B';
switch (i) {
  case 'A': {
    cout << "OI" << endl;
    break;
  }
  case 'B': {
    cout << "WIKI" << endl;
    break;
  }
  default: { cout << "Hello World" << endl; }
}

以上代码运行后输出的结果为 WIKI,因为 break 的存在接下来的语句就不会继续被执行了。


评论