我需要澄清以下代码段中的break语句:
当控制到达具有注释“number 1”的中断时,内部循环退出并且控制转移到具有“flag”的以下if语句。这是对的吗?
当控件到达第二个break语句时,退出该函数。这是对的吗?
void compute(int n, int numJ) {
int j, jCount = 0, init, base, check, added = 0, flag = 0;
init = pow(10, (n - 1)) + 1;
for(j = 0; j < pow(2, (n - 2)); j++)
{
check = init + 10 * convert(j);
for(base = 2; base <= 10; base++)
{
added = decValue(check, base);
if(!isPrime(added))
flag += 1;
else
break; //number 1
}
if(flag == 9)
{
display(check);
jCount += 1;
}
if(jCount == numJ)
break; //number 2
}
}
答案 0 :(得分:1)
break语句终止执行它出现的最近的封闭do,for,switch或while语句。控制传递给终止语句后面的语句。
因此,在您提供的示例中,如果(jCount == numJ) == true
,则是,则应退出父for循环。
答案 1 :(得分:0)
是的,第二个break语句将突破外部循环并到达函数的末尾。