为什么即使我不使用 printf,我的循环也会打印每个结果

Why my loop print every results even though im not using printf

即使我没有使用 printf,为什么我的循环会打印每个结果。 这是我的编码。结果被打印为执行的每个循环的矩阵

r1=0.963;
r2=0.764;
r3=0.528;
r4=1.815;
r5=0.778;
phi1=0*(pi/180);
phi2l=0*(pi/180);
phi2u=90*(pi/180);
phi2ro=90*(pi/180);
printf("    phi-1     phi-2     phi-3     x-p     y-p\n");
printf("--------------------------------------------------\n");
do
  phi2r=((phi2l+phi2u)/2); #CALCULATE PHI2R
  fphi2l=((r1*cos(phi1)+r2*cos(phi2l)-r4)^2+(r1*sin(phi1)+r2*sin(phi2l))^2-(r3^2)); #EXECUTE FUNCTION USING PHI2L
  fphi2r=((r1*cos(phi1)+r2*cos(phi2r)-r4)^2+(r1*sin(phi1)+r2*sin(phi2r))^2-(r3^2)); #EXECUTE FUNCTION USING PHI2R
  check=fphi2l*fphi2r; #CALCULATE VALUE FOR CONDITION
  if(check<0)
  {
    phi2u=phi2r;
  }
  endif
  if(check>0)
  {
    phi2l=phi2r;
  }
  endif
  error=abs(phi2r-phi2ro)/phi2r; #CALCULATE ERROR
  phi2ro=phi2r;
until(error<10^-8)
phi2=phi2r;
phi3=asin((r1*sin(phi1)+r2*sin(phi2))/r3);
phi3c=acos((r1*cos(phi1)+r2*cos(phi2)-r4)/r3);

您的 if 块中存在语法“错误”。在八度音程中,您不需要将 if “块”括在大括号中。您所写的内容有效地将该作业包装在 'cell' 中。因为 'cell' 语句没有以分号结尾(请注意分号在单元格内!),结果单元格会打印在终端上。

您可以改为这样做:

if check > 0
  phi2l = phi2r;
endif