如何跟踪开关用例值的执行顺序
How to keep track of order in which switch case values are executed?
如何跟踪switch
case语句的执行顺序?
例如:
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
实现更有意义?
您可以在每次迭代时保存一个向量,其中包含相应迭代的值:
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指令,但更"脏"。预先分配矢量也可以节省一些计算时间。
第2版:根据建议修改代码,以确保计算出新的值。
如果你只是想知道(而不是保存结果),你可以在每次迭代时输出值。尝试
cout << value << endl;
作为while循环内的第一行。
相关文章:
- QML按钮点击功能执行顺序
- C++ - scanf() 和 printf() 执行顺序不对
- 递归函数的执行顺序
- 运算符 new 的执行顺序和构造函数的参数
- 如何检查参数包是否具有执行顺序中的确切类型
- std::bind() 参数列表中函子的执行顺序(可能与函数参数的求值顺序无关)
- 了解递归函数的执行顺序
- OpenMP 4.5 任务依赖关系和执行顺序
- 通过调试来检查C 中单行表达式执行顺序的方法
- 遵循 C++ 中的构造函数执行顺序
- 联接线程如何影响主线程中的执行顺序?
- C COUT行为 /执行顺序
- 是定义的函数参数的内部执行顺序
- 强制执行执行顺序
- OpenGL计算着色器中线程的执行顺序
- 按执行顺序创建Pthread
- 逻辑操作员执行顺序
- 如何在使用 std::make_tuple 时避免构造函数的未定义执行顺序
- 提升::thread_specific_ptr/清理与退出执行顺序
- C++ 多线程:执行顺序