小编Oma*_*mar的帖子

除非使用System.out.println,否则看似无限循环终止

我有一个简单的代码,应该是一个无限循环,因为x它将一直在增长,并将永远保持大于j.

int x = 5;
int y = 9;
for (int j = 0; j < x; j++) {
   x = x + y;
}
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

但就像它一样,它打印y并且不会无休止地循环.我无法弄清楚为什么.但是,当我按以下方式调整代码时:

int x = 5;
int y = 9;
for (int j = 0; j < x; j++) {
    x = x + y;
    System.out.println(y);
}
System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

它变成了无限循环,我不明白为什么.java是否认识到它是无限循环并在第一种情况下跳过它但是必须在第二种情况下执行方法调用,以便它按预期运行?困惑:)

java for-loop infinite-loop

88
推荐指数
3
解决办法
7229
查看次数

算法思维指导(4四方程式)

我最近看到了一个名为4 Fours的逻辑/数学问题,你需要使用4个fours和一系列运算符来创建等于0到N的所有整数的等式.

你会如何编写一个优雅的算法来说出前100个......

我开始创建基本计算,如4-4,4 + 4,4x4,4/4,4!,Sqrt 4,并使这些值成为整数.

但是,我意识到这将是一个强力方法测试组合,看看它们是否相等,0然后是1,然后是2,然后是3等...

然后,我想到找到上述值的所有可能组合,检查结果是否小于100并填充数组然后对其进行排序......再次效率低下,因为它可能会发现1000多个数字超过100

任何有关如何处理这样的问题的帮助都会有所帮助......不是实际的代码......而是如何思考这个问题

谢谢!!

algorithm computation-theory

6
推荐指数
1
解决办法
607
查看次数

理解处理中的void draw()

我正在修补处理,无法弄清楚如何在我使用图像缓冲区(旋转方块)创建的图像上写入文本...当正方形变得比文本小时,变化的数字在彼此之上写入.无法使用重置bkg作为解决方案,因为这会擦除重叠的图像.仍然很难理解这个领域......

问题:如何使文本显示在旋转方块的顶部而不重置bkg并且不将文本写在自身上

代码如下谢谢!

float rotateAmount;
int boxColorR = 255;
int boxColorG = 255;
int boxColorB = 255;
int boxW = 480;
void setup () {
  size(640,480);
  rectMode(CENTER);

}

void drawText() {
  //translate(width/2,height/2);
  textAlign(LEFT, CENTER);
  fill(255, 255, 255);
  textSize(32);
  text("RED: " + boxColorR,width/2,height/2);
  text("GREEN: " + boxColorG,width/2,height/2+30);
  text("BLUE: " + boxColorB,width/2,height/2+60);
  text("Box Width: " + boxW,width/2,height/2+90); 
}

void drawBox() {
  translate(width/2,height/2);
    rotateAmount += 12;
    if (boxColorR <= 0) {
    boxColorG--;
  }
    if (boxColorG <= 0) {
    boxColorB--;
  }
  boxColorR--;
  boxW--;
  rotateAmount …
Run Code Online (Sandbox Code Playgroud)

processing draw

3
推荐指数
1
解决办法
8443
查看次数