如何跟踪执行switch
案例陈述的顺序?
例如:
while (some_boundary) {
switch (value) {
case a:
do something;
move to next value;
break;
case b:
do something;
move to next value;
break;
case c:
do something;
move to next value;
break;
}
}
我想知道switch
是执行abc
还是bac
还是cab
等等。
有什么想法吗?或者通过if/else
实施更有意义吗?
答案 0 :(得分:1)
您可以在每次迭代时使用相应迭代的值保存向量:
std::vector<int> sequence;
while (some_boundary) {
int temp = computeValue(); // Or however you get your value.
sequence.push_back(temp);
switch (temp) {
case a:
//do something;
break;
case b:
//do something;
break;
case c:
//do something;
break;
}
}
编辑:这是假设值设置在while和switch之间的某个位置,因此您可以提前保存它。其他选择是在每种情况下都包含push_back指令,但更“脏”。预分配矢量可以节省一些计算时间。
Edit2:根据建议修改代码,以确保计算新值。
答案 1 :(得分:0)
如果您只想知道(而不是保存结果),您可以在每次迭代时输出值。尝试
cout << value << endl;
作为while循环中的第一行。