java 如何从if语句外部访问值[已关闭]

bttbmeg0  于 11个月前  发布在  Java
关注(0)|答案(1)|浏览(82)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
一年前关闭。
Improve this question
如何从if语句的外部访问var值。我想从if(video.available)语句的外部访问brightestX值。

void draw(){
  if (video.available()) 
  {
    video.read();
    image(video, 0, 0, width, height);
    int brightestX = 0; 
    int brightestY = 0; 
    float brightestValue = 0; 

    video.loadPixels();
    int index = 0;
   
    for ( int y = 0; y < video.height; y++) {
        for ( int x = 0; x < video.width; x++) {
          int pixelValue = video.pixels[index];
          float pixelBrightness = brightness(pixelValue);

          if (pixelBrightness > brightestValue) {
              brightestValue = pixelBrightness;        
              brightestY = y;
              brightestX = x;
          }
          index++;
        }
    }
    fill(255, 204, 0, 128);
    ellipse(brightestX, brightestY, 200, 200);  
  }
}

字符串

dtcbnfnu

dtcbnfnu1#

只需在if条件的作用域之外声明想要访问的变量。
您可以稍后在if条件中引用相同的变量来更新它们,然后在if之后您可以读取这些更新的值。
当然,这些值将仅在视频数据可用时更新(否则保持为最近更新的值):

void draw(){
  int brightestX = 0; 
  int brightestY = 0; 
    
  if (video.available()) 
  {
    video.read();
    image(video, 0, 0, width, height);
    float brightestValue = 0; 

    video.loadPixels();
    int index = 0;

    for ( int y = 0; y < video.height; y++) {
        for ( int x = 0; x < video.width; x++) {
          int pixelValue = video.pixels[index];
          float pixelBrightness = brightness(pixelValue);

          if (pixelBrightness > brightestValue) {
              brightestValue = pixelBrightness;        
              brightestY = y;
              brightestX = x;
          }
          index++;
        }
    }
    fill(255, 204, 0, 128);
    ellipse(brightestX, brightestY, 200, 200);  
  }
  
  println(brightestX, brightestY); 
    
}

字符串
如果有帮助,也可以查看Java Scope

相关问题