java两个循环然后改变状态

java两个循环然后改变状态,java,for-loop,Java,For Loop,我尝试运行此循环两次,然后将状态更改为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[

我尝试运行此循环两次,然后将状态更改为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;
}
public void mousePressed(){
如果(状态==0){
对于(int i=0;i<6;i++){

如果(mouseX>=cards[i].x&&mouseX=cards[i].y&&mouseY不能100%确定您的要求,是这样的:

public void mousePressed() {
    state = 0; /* Assuming it is global */
    while (state < 2) {
        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++;
    }
}
public void mousePressed(){
state=0;/*假设它是全局的*/
而(状态<2){
对于(int i=0;i<6;i++){

如果(mouseX>=cards[i].x&&mouseX=cards[i].y&&mouseY我收集到您想要在第二次执行
mousePressed
时更改为状态1。您需要拆分您的状态。一种方法是引入一个新的状态变量(让我们先将其称为
)用于区分第一次鼠标单击前后的
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?
        }
    }
}
private boolean first=true;
公共空间鼠标垫(){
如果(状态==0){
对于(int i=0;i<6;i++){

if(mouseX>=cards[i].x&&mouseX=cards[i].y&&mouseY不使用这种疯狂的条件逻辑,只需从mouseevent获取组件并对其执行必要的逻辑即可。您可以使用状态0、1和2。为什么不调用此方法两次。您不能简单地用一个循环将其包围两次,然后更改状态吗?您的意思是,双击此循环运行的组件?th非常感谢您的回答。state++将继续增加state。我正在寻找将state更改为1的内容,即state=1;。但是再次感谢您的回答。非常感谢您的回答。它工作得非常好。