C++中的流控制结构,如何修改

Flow control constructs in C++, how to modify?

本文关键字:何修改 修改 控制结构 C++      更新时间:2023-10-16

这是代码段。如果if语句成功,我想回到循环1。如果if语句成功,我需要程序不要添加1000。

CCD_ 1==0。

我想比较两列字符串,得到距离度量。

我尝试过中断和继续命令,但没有一个能像我想要的那样工作。

谢谢

for(editA.i; editA.i<6; editA.i++)  // Loop 1
{
    for(editB.j=0; editB.j<6; editB.j++)    // Loop 2
    {
        if(editA.A[editA.i] == editB.B[editB.j])  // if this statment works, 
            // I want to go back to "Loop 1". How???
            sum+= abs(editA.i - editB.j);
        else
            sum+= 1000;
    }
}
for(editA.i; editA.i<6; editA.i++)  // Loop 1 
{ 
    for(editB.j=0; editB.j<6; editB.j++)    // Loop 2 
    { 
        if(editA.A[editA.i] == editB.B[editB.j])  // if this statment works  I want to go back to "Loop 1"
        {
            sum+= abs(editA.i - editB.j); 
            break ;
        }
        else 
            sum+= 1000; 
    } 
} 

如果您只想从内部循环中转义,我会在"if语句"中添加一个break语句。如果要完全转义这两个循环,则应该使用return语句。

Grzegorz的答案是正确的,但是,您的要求可能有所不同。

这是你想要的吗?

for(editA.i; editA.i<6; editA.i++)  // Loop 1
{
    bool found = false;
    for(editB.j=0; editB.j<6; editB.j++)    // Loop 2
    {
        if(editA.A[editA.i] == editB.B[editB.j]) {  
           sum+= abs(editA.i - editB.j);
           found = true;
           break; 
       }
    }
    if ( !found ) {
        sum += 1000;
    }
}