What is wrong with script?

Hey! I need some help.
I used to make an animation of walking and animation of catwalk. But walking is working and catwalking is not.

 // Use this for initialization
    void Start () {
        body.GetComponent<Animation>().Play(idle.name);
    }
	
	// Update is called once per frame
	void Update () {
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
            body.GetComponent<Animation>().Play(walk.name);
        else
            body.GetComponent<Animation>().Play(idle.name);
        if (Input.GetKey(KeyCode.LeftControl))
        {
            if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
                body.GetComponent<Animation>().Play(catwalk.name);
            else
                body.GetComponent<Animation>().Play(seat.name);
        }
    }
}

The problem is that the first if-else statement will always be evaluated, and the input check of the left control will be always the second thing. You could separate these things:

void Update () {
		if (Input.GetKey(KeyCode.LeftControl))
		{
			if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
				body.GetComponent<Animation>().Play(catwalk.name);
			else
				body.GetComponent<Animation>().Play(seat.name);
		}
		else
		{
			if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
				body.GetComponent<Animation>().Play(walk.name);
			else
				body.GetComponent<Animation>().Play(idle.name);
		}
	}

Now it will first check if the LeftControl is pressed. If it is, it will either play ‘catwalk’ or ‘seat’. Else it will play ‘walk’ or ‘idle’.