假設我有兩個布爾變量,並且我想根據它們的值完成不同的事情。什麼是最簡單的方法來實現這一點?基於兩個布爾變量的分支
變型1:
if (a && b)
{
// ...
}
else if (a && !b)
{
// ...
}
else if (!a && b)
{
// ...
}
else
{
// ...
}
變體2:
if (a)
{
if (b)
{
// ...
}
else
{
// ...
}
}
else
{
if (b)
{
// ...
}
else
{
// ...
}
}
變體3:
switch (a << 1 | b)
{
case 0:
// ...
break;
case 1:
// ...
break;
case 2:
// ...
break;
case 3:
// ...
break;
}
變4:
lut[a][b]();
void (*lut[2][2])() = {false_false, false_true, true_false, true_true};
void false_false()
{
// ...
}
void false_true()
{
// ...
}
void true_false()
{
// ...
}
void true_true()
{
// ...
}
的變體3和4太棘手/複雜,一般的程序員?我錯過的其他變體?
爲什麼你會想要做3或4?看起來很可怕:) – murrekatt