Help with rotate speed

Hi, i am new to scripting and i have a problem when i press “Q” i want my rotate speed to double once, then when “Q” is unpressed my rotate speed goes back to normal here is my code:

public var moveSpeed : float = 10f;
public var turnSpeed : float = 50f;

function Update () {

	if(Input.GetKey(KeyCode.UpArrow))
	{
		transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
	}
	if(Input.GetKey(KeyCode.DownArrow))
	{
		transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
	}
	if(Input.GetKey(KeyCode.LeftArrow))
	{
		transform.Rotate(Vector3.up * -turnSpeed * Time.deltaTime);
	}
	if(Input.GetKey(KeyCode.RightArrow))
	{
		transform.Rotate(Vector3.up * turnSpeed * Time.deltaTime);
	}
	
	if(Input.GetKeyDown(KeyCode.Q))
	{
		turnSpeed = turnSpeed * 2;
		
	}
	
}

You need to return the value of turnspeed like you said

    if(Input.GetKeyUp(KeyCode.Q))

    {

        turnSpeed = turnSpeed / 2;

        

    }

Thank you fire7side =)

safer code would use a third variable.

var multiplier: float = 1;

public var moveSpeed : float = 10f;

public var turnSpeed : float = 50f;

 

function Update () {

    multiplier = 1;
    if(Input.GetKeyDown(KeyCode.Q))
        multiplier = 2;

    if(Input.GetKey(KeyCode.UpArrow))
    {
        transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
    }
    else if(Input.GetKey(KeyCode.DownArrow))
    {
        transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);
    }

    if(Input.GetKey(KeyCode.LeftArrow))
    {
        transform.Rotate(Vector3.up * -turnSpeed * multiplier * Time.deltaTime);
    }
    else if(Input.GetKey(KeyCode.RightArrow))
    {
        transform.Rotate(Vector3.up * turnSpeed * multiplier * Time.deltaTime);
    }
     

}