我是 java 新手,想知道为什么我的 if(){}else{} 语句无法正常工作。谁能解释为什么? 为了获得更多背景信息,我试图制作一个自动答题器类型的东西,它也可以将鼠标移动到不同的位置来解决基本的难题。
这就是我目前所拥有的
import java.awt*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.Color;
class main {
public static void main (String[] args) throws Exception {
Robot robot = new Robot();
robot.mouseMove(1681, 679);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(1000);
for (int i = 2; i >= 1; i++) {
robot.delay(3000);
var color = robot.getPixelColor(1802, 762);
if (color == Color.white) {
robot.mouseMove(1700, 679);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(5000);
robot.mouseMove(1700, 679);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);//click delay
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseMove(1569, 973);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(200);
robot.mouseMove(1142, 729);
robot.delay(1500);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(3000);
robot.mouseWheel(10);
robot.mouseMove(391, 822);
robot.delay(500);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
} else {
robot.mouseMove(1681, 679);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_R);
robot.delay(10000);
}
}
}
}
var color = robot.getPixelColor(1802, 762);
你应该在这里放置 Color 而不是 var
Color color = robot.getPixelColor(1802, 762);
var 类型在 javascript 中被大量使用,因为它是一种动态类型语言。 Java 是一种静态类型语言,因此在大多数情况下使用它并不总是一个好主意,因为它会降低可读性。 var 类型是在 Java 10 中才引入的。您只能在少数情况下使用 var 类型。
它将与
一起使用var a = "一个字符串" 变量 b = 2
但是它可能不适用于
var c = 新对象()
原因是java编译器一开始并不知道右侧值的类型是什么。它可以在 Javascript 上运行,但不能在 Java 中运行,因为它是一种类型安全的语言。
因此将 var 更改为正确的类型(例如 Color)是明智的。另外,我注意到你的 for 循环功能将永远存在。这是你的意图吗?如果没有,我建议仔细检查你的循环计数器或条件语句。