l C++有两种通用的条件分支形式。
l If/else:
根据条件选择一个分支执行的一般方法,它线性的检查条件并检查条件为TRUE,当第一个条件为TRUE时不在检查后面的条件。
l switch
因为switch可以使用”转移表(jump table)”,所以它选对分支更有效。
if 语句
l 通用形式
If (<cond>)
<stmt1>
[else
<stmt2> ]
l 条件地执行一个语句序列的一般机制
#include <ctype.h>
char* character_class (char c) {
{
if (isalpha (c)
{
If (isupper ( c ) )
return “ is upper case”;
else
return “is lower case”;
}
else if (isdigit ( c ))
return “is a digit”;
else if (isprint ( c ))
return “is a printable char”;
else
return “ is an unprintable char”;
}
switch 语句
l 通用形式
switch (<expr> { <case> }
l switch只能用于标量变量。即: 整形,字符型,枚举形。
l 可以从一组标量变量中有效的进行选择
enum symbol_type
{
CONST, SCALAR, STRING,RECORD,ARRARY
} symbol;
switch (symbol)
{
case CONST: put (“constant”);
case SCALAR: puts (“scalar”); break;
case RECORD: puts (“record”); break;
default: puts (“either array or string”);break;
}
l 在switch中出现的break语句与循环中的break语句用法相似。