I have just started to learn C# this week and am trying to run a simple code that prompts the user to enter a number if they enter text, or prompts them to enter a positive number if they enter a negative one (so a boolean operation for the text, and an if statement for the negative). If they enter a valid (positive) number the program continues on with the rest of the steps.
However with this code, if the user inputs a negative, then a text, then another negative number and so forth it seems to break the loop and continue on with the next operations.
The code is part of a bigger program so I have scaled it down and pulled out only the most critical parts for it to run. Is anyone able to spot what I have missed here?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IncomeTaxCalculator
{
    class IncomeTax
    {
        public static void Main()
        {
            double income;
            income = income_input();
            show_output(income);
        }
        public static double income_input()
        {
            double income; string income_string; bool bad_value = true;
            do
            {
                Console.Write("What is your total income: ");
                income_string = Console.ReadLine();
                if (double.TryParse(income_string, out income))
                {
                    bad_value = false;
                }
                else
                {
                    Console.WriteLine("Enter your income as a whole-dollar numeric figure.");
                }
                if (income < 0)
                {
                    Console.WriteLine("Your income cannot be a negative");
                }
            } while (bad_value || income < 0);
            return income;
        }
              public static void show_output(double income)
        {
            Console.WriteLine("Your income is " + income);
            Console.WriteLine("\n\n Hit Enter to exit.");
            Console.ReadLine();
        }
    }
}
 
     
     
    