c++ - 如何在不同的 for 循环之间切换,这样的机制是否有意义?

标签 c++ c loops for-loop

这更像是一个,我有点想知道这个问题是否有意义,而不是一个,我有一个真正的问题,我对你的意见很感兴趣。如果有任何语法错误,我会使用伪代码来说明要描述的意图。

我有一个使用 for 循环的程序。

for (frame_pos = 0; frame_pos < frame_size; frame_pos++) {
 ABC...
}

现在我想添加另一种可能的方法来遍历我的程序。

for (frame_pos = framelist.first; framlist.hasNext; frame_pos = framelist.getNext) {
 ABC...
}

所以我写了一个if语句

if(a == true){
 for (frame_pos = 1; frame_pos <= frame_size; frame_pos++) {
  ABC...
 }
}else{
 for (frame_pos = framelist.first; framlist.hasNext; frame_pos = framelist.getNext) {
  ABC...
 }
}

但不知何故我不喜欢它,因为我重复了我的代码。

  ABC...

当然,我可以将循环中的所有内容移动到一个方法中,并且只调用该方法。但我想知道,如果像

switch(a){
case(true):
 for (frame_pos = 1; frame_pos <= frame_size; frame_pos++) {
 break;
default:
 for (frame_pos = framelist.first; framlist.hasNext; frame_pos = framelist.getNext) {
 break; 
}

是可能的,如果可能的话,有用且有意义,因为我会在这里使用它。当然,它不一定必须是 switch-case,也可以是其他机制。但我的意图是/是拆分,从我的角度来看,atomic

for( ; ; ) {
...
}

体并重组它。

最佳答案

ABC 设为一个函数 ( extract method ) 并调用它。

关于c++ - 如何在不同的 for 循环之间切换,这样的机制是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467489/

相关文章:

c - C 中 NULL 比较的错误

Javascript对象多次循环,顺序相同?

c++ - 使用 C/C++ 捕获视频流

c++ - 基于 TCP/IP 的 HTTP?

c - 我在代码块中编写的堆栈实现代码编译成功,但在运行时显示错误

python - 在服务器上找不到文件时阻止代码崩溃的方法?

c++ - 使用循环 *AND 交换填充的数组

c++ - 如何在 C++ 中简单地处理一张表?

c++ - Thread Building Blocks 流程图 — 类似 limiter_node 的东西,不会丢弃消息

创建 mpi 派生数据类型,包含带指针的结构