10.6 break语句

break语句跳出包含它的最内层whiledo-untilfor循环。break语句只能在循环体内部使用。以下示例找出给定整数的最小除数(大于1),并判断该数是否为素数:

num = 103;
div = 2;
while (div*div <= num)
  if (rem (num, div) == 0)
    break;
  endif
  div++;
endwhile
if (rem (num, div) == 0)
  printf ("Smallest divisor of %d is %d\n", num, div)
else
  printf ("%d is prime\n", num);
endif

当第一个while语句中的余数为零时,Octave立即跳出循环。这意味着Octave直接执行循环之后的语句并继续处理。(这与exit语句完全不同,exit会停止整个Octave程序。)

以下是另一个与前一个程序等效的程序。它展示了while语句的条件完全可以被替换为if内部的break

num = 103;
div = 2;
while (1)
  if (rem (num, div) == 0)
    printf ("Smallest divisor of %d is %d\n", num, div);
    break;
  endif
  div++;
  if (div*div > num)
    printf ("%d is prime\n", num);
    break;
  endif
endwhile

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4