gpt4 book ai didi

java 两个循环然后改变状态

转载 作者:行者123 更新时间:2023-12-02 06:34:28 25 4
gpt4 key购买 nike

我正在尝试运行此循环两次,然后将状态更改为 1。(state=1;)。这可能吗?

public void mousePressed() {
if (state == 0) {
for (int i = 0; i < 6; i++) {
if (mouseX >= cards[i].x && mouseX <= cards[i].x + cards[i].WIDTH && mouseY >= cards[i].y && mouseY <= cards[i].y + cards[i].HEIGHT) {
cards[i].flip();
}
}
state = 1;
}

现在,当我运行这个循环时,它只运行一次并将状态形式 0 (state==0) 更改为 1。我的问题是我可以让这个循环运行两次(按鼠标两次),然后将状态从 0 更改为1(状态=1;)。

提前非常感谢您。任何帮助,将不胜感激。

最佳答案

我推测您希望在第二次执行 mousePressed 时更改为状态 1。你需要 split 你的州。一种方法是引入一个新的状态变量(我们称之为 first),用于区分第一次鼠标单击之前和之后的 state == 0:

private boolean first = true;
public void mousePressed() {
if (state == 0) {
for (int i = 0; i < 6; i++) {
if (mouseX >= cards[i].x && mouseX <= cards[i].x + cards[i].WIDTH && mouseY >= cards[i].y && mouseY <= cards[i].y + cards[i].HEIGHT) {
cards[i].flip();
}
}
if (first) {
first = false;;
} else {
state = 1;
// perhaps reset first?
}
}
}

第二种方法是允许 state 采用第三个值,该值在逻辑中的其他任何地方都被视为与状态 0 相同。 (从概念上讲,您将拥有状态 0 和 0'。)

关于java 两个循环然后改变状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com