【问题标题】:Executing for loop inside if statement在 if 语句中执行 for 循环
【发布时间】:2014-07-04 07:01:40
【问题描述】:

我无法弄清楚为什么我的程序不会开始执行 for 循环:for 循环的逻辑是正确的,但是当程序运行时它只是跳过了 for 循环,没有执行它。如果i 等于count,它应该从名为se 的数组中读取最后剩余的元素并写入数组finallyDone

while(check && i < len){
    int fi = first[i];
    int se = second[j];
    if(fi < se){
        finallyDone[count] = fi;
        i++;
    }
    else{
        finallyDone[count] = se;
        j++;
    }
    int l;
    if(i >= len){
        for(l = count; l < len * 2 - count; l++){
            finallyDone[count + 1] = se;
        }
        check = false;
    }
    count++;
}

【问题讨论】:

  • 调试一下。 check 可能是假的和/或 i 小于 len
  • 为了计算for循环,我们需要知道循环中count和len的值。从这部分代码中,我不会知道它们的价值。因此,只需使用调试器跟踪循环即可。

标签: c# if-statement for-loop logic


【解决方案1】:

这是出错的地方:

while(check && i < len){
   //and later
    if(i >= len){

只有当i 小于len 时,你才能进入 IF 语句,但只有当i 等于len 或更大时,你才会进入 IF 语句。这两种说法是矛盾的。

【讨论】:

  • 不完全正确,如果 i == len-1 并且 fi
  • 不,i++ 发生在您的 //and later 评论的位置,我看不到 continue 或 break 语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2020-07-17
  • 2014-05-14
  • 2016-06-16
相关资源
最近更新 更多