为什么我的 'if' 语句没有在这段代码中执行? (加工)

Why is my 'if' statement not executing in this code? (Processing)

    void setup(){
  size(800,600);
  background(0);
  fill(255,40,40);
  noStroke();
  ellipse(400,80,20,20);
  ellipse(150,513,20,20);
  ellipse(650,513,20,20);
  fill(255);
  frameRate(10);
}

float traceX = 350;
float traceY = 350;
String vertexPick = "";
float rand = 0;

void draw(){

  point(traceX,traceY);
   rand = random(1);
  if (rand > 2/3) {
    vertexPick = "A";
  }
  else if (rand < 1/3) {
    vertexPick = "B";
  } else {
    vertexPick = "C";
  }

  if (vertexPick == "A") {
    traceX = (traceX+400)/2;
    traceY = (traceY+80)/2;
  }
  else if (vertexPick == "B") {
    traceX = (traceX+150)/2;
    traceY = (traceY+513)/2;
  }
  else 
  {
    traceX = (traceX+650)/2;
    traceY = (traceY+513)/2;
  }  
}

我已经检查过,每次通过 'draw' 函数它都会生成一个介于 0 和 1 之间的新随机数。但是它没有根据数字将 vertexPick 分配给一个新字母,而是卡住了在 vertexPick 的一个值上并永远留在那里。谁能告诉我为什么?为什么它不会在每个循环中再次执行 if 语句?

你的整数除法有问题,即 2/30 并且条件 rand > 2/3 始终为真。

要进行浮点除法,请使用 2.0/3 代替 2/3

(看这个问题Division of integers in Java