我如何反复打印相同的值

How do I print the same value repeatedly?

本文关键字:打印 何反复      更新时间:2023-10-16

我能够显示t到屏幕上,但是每次循环迭代时,t的当前值都会在打印之前添加到上一个值中。这意味着,它打印出9,18,27,36 ...如何避免这种情况?我需要它与代码循环连续显示9。

int d,i,p,s,t,arr[30];
float hp = 0;
float arr2[30];
void setup(){
  Serial.begin(9600);
}
void loop(){
    for (d = 0; d < 360; d++){
          if (sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1> sin((d-1)*(PI/180))+1 
+ sin((d-1)*(2*PI/180))+1 && sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1 > 
sin((d+1)*(PI/180))+1 + sin((d+1)*(2*PI/180))+1){
         arr2[i++] = sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1;
        }
      }
for (p = 0;p <30; p++){
  if(arr2[p]!=0){
    if (arr2[p]>hp){
    hp = arr2[p];  
    }  
  } 
}
for (d = 0; d < 3600; d++){
      if (sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1 >= hp){
         arr[s++] = d;
        }
      }
 for (s = 0; s < 30; s++){
  if (arr[s]!=0){
    t++;
   }
  } 
  Serial.println(t);
}

一般建议:

以最小的范围定义变量。在您的情况下,除非有理由制作td全局变量,否则不要使它们成为全局变量。使它们功能局部变量。

将您的代码更改为:

void loop(){
   int t = 0;
   int d = 0;
   ...
   Serial.println(t);
}

这将解决您的直接问题,更重要的是,您的代码将更加干净。