Разумнее было добавить это как ответ на код Арина , чем продолжать делать это в комментариях ...
1) Подумайте об использовании десятичного числа вместо двойного. Это более вероятно, чтобы дать ответ, который ожидает пользователь. См. http://pobox.com/~skeet/csharp/floatingpoint.html и http://pobox.com/~skeet/csharp/decimal.html для объяснения причин. По сути, десятичная дробь работает намного ближе к тому, как люди думают о числах, чем двойная. Double работает больше похоже на то, как компьютеры «естественно» думают о числах, поэтому они быстрее, но здесь это не актуально.
2) Для пользовательского ввода обычно стоит использовать метод, который не выдает исключение при неправильном вводе - например, decimal.TryParse и int.TryParse. Они возвращают логическое значение, чтобы сказать, успешно ли выполнен анализ, и используют параметр out
, чтобы дать результат. Если вы еще не начали изучать параметры out
, возможно, на данный момент стоит игнорировать этот пункт.
3) Это всего лишь небольшой момент, но я думаю, что было бы разумно иметь скобки вокруг всех тел «for» / «if» (и т. Д.), Поэтому я бы изменил это:
for (int counter = 0; counter < 6; counter++)
Console.WriteLine("{0,5}{1,8}", counter, array[counter]);
к этому:
for (int counter = 0; counter < 6; counter++)
{
Console.WriteLine("{0,5}{1,8}", counter, array[counter]);
}
Это делает блок более четким и означает, что вы случайно не пишете:
for (int counter = 0; counter < 6; counter++)
Console.WriteLine("{0,5}{1,8}", counter, array[counter]);
Console.WriteLine("----"); // This isn't part of the for loop!
4) В вашем операторе switch не указан регистр default
- поэтому, если пользователь вводит что-либо, кроме «да» или «нет», он просто игнорирует их и выходит Вы можете захотеть иметь что-то вроде:
bool keepGoing = true;
while (keepGoing)
{
switch (answer)
{
case "yes":
Console.WriteLine("===============================================");
Console.WriteLine("please enter the array index you wish to get the value of it");
int index = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("===============================================");
Console.WriteLine("The Value of the selected index is:");
Console.WriteLine(array[index]);
keepGoing = false;
break;
case "no":
Console.WriteLine("===============================================");
Console.WriteLine("HAVE A NICE DAY SIR");
keepGoing = false;
break;
default:
Console.WriteLine("Sorry, I didn't understand that. Please enter yes or no");
break;
}
}
5) Когда вы начали изучать LINQ, вы можете захотеть вернуться к этому и заменить цикл for, который суммирует входные данные просто:
// Or decimal, of course, if you've made the earlier selected change
double sum = input.Sum();
Опять же, это довольно продвинутое - пока не беспокойтесь об этом!