Search code examples
javalogicoperation

Logic Issue A or C (C and B)


ive got the following code for a drag and drop event:

if (event.getType().equals("mousedown")){
    isMouseDown = true;
}

if (event.getType().equals("mouseup")){
    isMouseDown = false;
}

if (event.getType().equals("mouseout")){
    isMouseDown = false;
}

if (event.getType().equals("mousemove")){
    if (isMouseDown)
        thisMove(event);    
}

how can i shorten this now with a better logic i tried

isMouseDown = event.getType().equals("mousedown") && !(event.getType().equals("mousemove") && isMouseDown);

if (event.getType().equals("mousemove") && isMouseDown)
    thisMove(event);

but its wrong...


Solution

  • You can change your code as follow:

       switch(event.getType()){
            case "mousedown":
                isMouseDown = true;
                break;
            case "mouseup":
            case "mouseout":
                isMouseDown=false;
                break;
            case "mousemove":
                if(isMouseDown)  thisMove(event);
                break;
            default:
                break;
        }