合計が 100 に達しない間はループする必要があるため、条件はinputList.Sum() < 100
です。
合計と新しい数が 100 より大きい場合は、ユーザーに伝えます。そうでない場合は、それらを一緒に追加できます。
また、本当に 10 進数が必要な場合を除き、ユーザーに を照会するint
必要があります (その場合は、イプシロンで等しいかどうかを確認する必要があります)。
これにより、次のようになります。
static void Main(string[] args)
{
List<int> inputList = new List<int>();
do
{
Console.Write("Enter your number: ");
int numberToAdd = Convert.ToInt32(Console.ReadLine());
if (numberToAdd + inputList.Sum() > 100)
{
Console.WriteLine("Number will not be added, {0} is greater than 100", numberToAdd + inputList.Sum());
}
else
{
inputList.Add(numberToAdd);
}
} while (inputList.Sum() < 100);
double sum = inputList.Sum();
Console.WriteLine("The sum is " + sum);
double avg = sum / inputList.Count;
Console.WriteLine("The average is " + avg);
Console.ReadLine();
}
少し掃除したら:
static void Main(string[] args)
{
List<int> inputList = AskUserForInput();
PrintSum(inputList);
PrintAverage(inputList);
Console.ReadLine();
}
private static List<int> AskUserForInput()
{
List<int> inputList = new List<int>();
do
{
Console.Write("Enter your number: ");
int numberToAdd = Convert.ToInt32(Console.ReadLine());
if (IsGreaterThan100(numberToAdd, inputList))
{
Console.WriteLine("Number will not be added, {0} is greater than 100", numberToAdd + inputList.Sum());
}
else
{
inputList.Add(numberToAdd);
}
} while (IsSumLowerThan100(inputList));
return inputList;
}
private static bool IsGreaterThan100(int numberToAdd, List<int> inputList)
{
return numberToAdd + inputList.Sum() > 100;
}
private static bool IsSumLowerThan100(List<int> inputList)
{
return inputList.Sum() < 100;
}
private static void PrintAverage(List<int> inputList)
{
double avg = inputList.Sum() / inputList.Count;
Console.WriteLine("The average is " + avg);
}
private static void PrintSum(List<int> inputList)
{
double sum = inputList.Sum();
Console.WriteLine("The sum is " + sum);
}
}