Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SumOfNumbers.cs
- // Sum Of (5) integers, entered from standard input
- //
- // Build with "csc SumOfNumbers.cs" or "mono-csc SumOfNumbers.cs"
- // execute with "SumOfNumbers.exe"
- using System;
- class SumOfNumbers
- {
- public static void Main( )
- {
- const int numbersRequested = 5; // total requested numbers
- int numbersRead = 0; // current count of correctly read numbers.
- // Should be the same type as numbersRequested
- // For 5 elements, "byte" type is also good.
- string userInput; // string to hold Console.ReadLine() result.
- long result = 0; // Result. Must be big enough to store
- // numbersRequested * (max 32bit integers)
- Console.Title = "Sum of numbers";
- Console.WriteLine("Sum of {0} integers.", numbersRequested);
- do
- {
- Console.WriteLine("Please enter number: ");
- // Handling exceptions on WriteLine() is pointless,
- // Since we can't inform the user anyways
- // On the ReadLine(), however, the story is different
- // E.g. the input filestream might get closed
- try
- {
- userInput = Console.ReadLine();
- }
- catch (Exception e)
- {
- Console.WriteLine("Could not read user input, caught {0}. ", e.ToString());
- //since this is Main(), we just return.
- return;
- }
- // We might as well read "EOF" (End of File) condition.
- // Generated with Ctrl+D from Console
- if ( null == userInput )
- {
- Console.WriteLine("Reached end of input. ");
- //since this is Main(), we just return.
- return;
- }
- // OK, we've got input. Try to parse it as an integer
- int currentNumber = 0;
- bool tryParse = int.TryParse(userInput, out currentNumber);
- if (!tryParse)
- {
- Console.WriteLine("Invalid number. ");
- continue;
- }
- result += currentNumber;
- numbersRead++;
- } while (numbersRead < numbersRequested);
- Console.WriteLine("Sum of the numbers is {0}. ", result);
- return;
- }
- }
- // Tests:
- // Test case 1: correct input
- // Input:
- //1
- //2
- //3
- //4
- //5
- // Output:
- //Sum of 5 numbers.
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Sum of the numbers is 15.
- // Test case 2: invalid number
- // Input:
- //1
- //2
- //3
- //foo
- //4
- //5
- // Output:
- //Sum of 5 numbers.
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Invalid number.
- //Please enter number:
- //Please enter number:
- //Sum of the numbers is 15.
- // Test case 3: premature EOF
- // Input:
- //1
- //2
- //3
- //5 (_EOF)
- // Output:
- //Sum of 5 numbers.
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Please enter number:
- //Reached end of input.
Advertisement
Add Comment
Please, Sign In to add comment