C# C# Basics (Retired) Perfect Wrap Up

Kari Soto
Kari Soto
1,836 Points

I completed the "Final" on workspaces, but it doesn't work on the final. Does anyone have a working version?

Here is my code:

// Type "clear && macs Program.cs && mono Program.exe" in the console without quotes to start the program.
// Type "quit" to quit.

using System;

namespace Treehouse
{
    class Program
    {
        static void Main()
        {          
            while (true) 
            {             
                Console.Write("Enter the number of times to print \"Yay!\": ");  

                try 
                {           
                    string input = Console.ReadLine();

                    if (input == "quit") 
                    {
                        break; 
                    }

                    int newNumber = Int32.Parse(input);          

                    while(newNumber != 0) 
                    {
                        Console.WriteLine("\"Yay!\"");
                        newNumber -= 1;               
                    }
                }
                catch (FormatException) 
                {
                    Console.WriteLine("That is not a valid input."); 
                }             
            }          
        }
    }
}

Thanks!

2 Answers

Steven Parker
Steven Parker
174,023 Points

:point_right: Your program "works", but deviates from the instructions.

This is a great example of how something that works (will compile an run) might not be what was asked for (satisfies the requirements). This has been a topic of many previous questions, but I'll repost the info here:

People often over-think this one and get too creative, and their answer is rejected for a variety of reasons (some which don't seem to make any sense).

Here are the secret "rules" you must follow for success on this one:

  • Your program must ask for and accept input ONE TIME ONLY
  • If the input validates, your program will perform exactly as in Task 1
  • If the input does not validate, it will print the error message and exit
  • Validation must be done by exception catching. There are other perfectly good methods that can be used for validation, but they will not pass this challenge
Sean Hayes
PRO
Sean Hayes
Pro Student 8,106 Points

I agree with Steven, I think you are over thinking the program and trying to do more than what is asked. Take a look at what is asked and what you wrote:

  • Get input from the user on how many times they want to print "Yay!".
  • You will have to try (hint) to convert this input to an int (hint) to make is useful in a for (another hint) loop.
  • You need to check if that input is positive (greater than or equal to 0) (hint)
  • Run a for-loop printing Yay! to the screen (watch how many times you use double quotes).
  • And if the try fails because the user put in a word instead of a number, catch the exception.

That is all you have to do for this challenge. There is no need for a while loop, and check which flavor of int you are using for the parse. Hope this helps.