标志
在计算机科学中,标志是充当函数或进程信号的值。程序会使用标志的值来确定下一步操作。标志通常是二进制标志,其中包含一个布尔值(true 或 false)。不过,并非所有标志都是二进制的,也就是说,它们可以存储一系列值。
你可以把二进制标志想象成一面小红旗:当它为 false 时平放着,当它为 true 时就会升起。升起的旗子会告诉程序:“停止——执行其他操作。”在计算机编程中,标志的一个常见例子是变量在while 循环中的使用。下面的PHP循环会一直迭代,直到将 $flag 设置为 true。
$flag = false;
$i = 1;
while (!$flag) // 当 $flag 为 true 时停止
{
echo "$i, ";
$i++; // 递增 $i
if ($i > 100) $flag = true;
}
上面的代码会输出数字(1、2、3……),直到 100。然后循环会中断,因为 $flag 会被设置为 true。在这种情况下使用标志是有效的,但并非必要。相反,可以使用 while ($i < 101) 作为 while 循环条件,而不是 while (!$flag)。这样会产生相同的结果,并且不需要 $flag 变量。编写高效的程序很少需要显式的标志,因为函数中已有的变量通常可以用作标志。
非二进制标志
非二进制标志使用多个位,可以存储的不只是“是或否”或“true 或 false”。这类标志需要多个位,但不一定需要完整的一个字节。例如,两个位可以产生四种可能的选项。
- 00 = 选项 A
- 01 = 选项 B
- 10 = 选项 C
- 11 = 选项 D
你可以把非二进制标志想象成一面有多种颜色的旗子。程序可以检查:1)多位标志是否已设置;2)它包含什么值。程序会根据标志的值(或“颜色”)沿相应的方向继续运行。
测试你的知识