私は、ガソリンのタンクごとに走行マイルと使用ガロン(整数)を入力することになっているC#アプリケーションに取り組んでおり、アプリケーションは、タンクごとに取得したガロンあたりのマイルを計算して表示し、取得したガロンあたりの合計マイルを表示する必要がありますすべてのタンクフル。私の問題は、センチネル制御のアスペクト "-1" がプログラムの実行を停止しないことですが、IDE が JIT デバッガーを起動し、Microsoft.NET フレームワークの例外 MileageDriven.exe[732] が発生します。
最後のレッスンに基づいて将来のレッスンが構築されるため、この演習を超えて先に進みたくないので、何か助けてもらえますか? 前もって感謝します。:)
using System;
public class MileagedrivenTest
{
public static void Main(string[] args)
{
Mileage driverMileage = new Mileage("Driver log");
driverMileage.DisplayMessage();
driverMileage.DetermineMileagePerGallon();
} // end main
} // end class MileageDrivenTest
// Fig. 1.1: MileageDriven.cs
// Mileage class that solves mileage per gallon problem
// using sentinel-controlled repetition
using System;
public class Mileage
{
public string Gallons { get; set; }
public Mileage (string name)
{
Gallons = name;
}
public void DisplayMessage()
{
Console.WriteLine("Welcome to the mileage log for\n{0}\n", Gallons);
} // end method DisplayMessage
//determine the average mileage for gallon per tank of gas
public void DetermineMileagePerGallon()
{
int total = 0;
int mileage; // sum of miles driven
int gallons; // sum gallons used
double average;
int mileageCounter = 0;
Console.WriteLine("Enter mileage or -1 to quit: ");
mileage = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter gallons used: ");
gallons = Convert.ToInt32(Console.ReadLine());
while (mileage != -1)
{
mileage = total + mileage;
mileageCounter = mileageCounter + mileage;
Console.Write("Enter next miles driven or -1 to quit: ");
mileage = Convert.ToInt32(Console.ReadLine());
} // end while
if (mileageCounter != 0)
{
average = (double)total / mileageCounter;
Console.WriteLine("\nTotal of the {0} miles driven is {1} per tank is{}", mileageCounter, total);
Console.WriteLine("Average mile per gallon is {0}", average);
}
else
Console.WriteLine("No mileage entered");
}
}