Produce a Java program which, given three sides of a triangle, determines whether the triangle is:
1. Equilateral - all sides the same length,
2. Isosceles - two sides the same length or
3. Scalene - no sides the same length
(see Figure 1). Assume that any individual side must be a positive number not greater than 100.0.
1. Also use an appropriate loop to allow the user to repeat the above actions until they choose to exit the program.

Remember to write the source code for each class in a separate file which must have the same name as the class name together with the extension .java. Remember also that by convention, class names commence with a capital letter.
As with all programs you write, you should provide a well-structured solution that is easy to read. You should use meaningful identifier names and should provide useful comments. We need to high-light the structure of our classes, not whether they do or don't work correctly.