以下是代码段。如果if语句成功,我想回到循环1。如果if语句成功,我需要程序不添加1000。
程序开头的 editA.i
== 0。
我想比较两列字符串并获得距离度量。
我尝试过break和continue命令,但是没有一个能按我的意愿工作。
谢谢
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;
}
}
答案 0 :(得分:11)
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;
}
}
答案 1 :(得分:1)
如果你只想逃离内循环,我会在'if语句'中添加一个break语句。如果要完全转义两个循环,则应使用return语句。
答案 2 :(得分:1)
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;
}
}