getkeydown reacts more than once

Hello, I am really struggling with this. When I run the code and press F the code works fine, but then when I press F the second time both statements are run

void Update()
{

    if (isFishing == true)
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            print("you are no longer fishing");
            isFishing = false;
        }
    }
    if (isFishing == false)
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            print("you are fishing");
            isFishing = true;
        }
    }
}

if (isFishing == true)
{
if (Input.GetKeyDown(KeyCode.F))
{
print(“you are no longer fishing”);
isFishing = false;
}
}
else if (isFishing == false)
{
if (Input.GetKeyDown(KeyCode.F))
{
print(“you are fishing”);
isFishing = true;
}
}

Try this