【发布时间】:2014-01-28 15:30:08
【问题描述】:
这是我在我的 c++ 程序中使用的一个 for 循环,它无限重复,我不知道为什么。 (循环包含在一个名为“initialiseTaxis”的方法中。
这就是全部内容:
void initialiseTaxis (taxiDetails allTaxiDetails[14])//Initialise array of taxis
{int i = 0;
while (i < 15)
{
if (i = 0)
allTaxiDetails[i].taxiDriverSurname = "Downing";
else if (i = 1)
allTaxiDetails[i].taxiDriverSurname = "Gilbert";
else if (i = 2)
allTaxiDetails[i].taxiDriverSurname = "Downey";
else if (i = 3)
allTaxiDetails[i].taxiDriverSurname = "Potter";
else if (i = 4)
allTaxiDetails[i].taxiDriverSurname = "Elric";
else if (i = 5)
allTaxiDetails[i].taxiDriverSurname = "Rockbell";
else if (i = 6)
allTaxiDetails[i].taxiDriverSurname = "Tate";
else if (i = 7)
allTaxiDetails[i].taxiDriverSurname = "Pratt";
else if (i = 8)
allTaxiDetails[i].taxiDriverSurname = "Mansfield";
else if (i = 9)
allTaxiDetails[i].taxiDriverSurname = "Hopps";
else if (i = 10)
allTaxiDetails[i].taxiDriverSurname = "Willaker";
else if (i = 11)
allTaxiDetails[i].taxiDriverSurname = "Singer";
else if (i = 12)
allTaxiDetails[i].taxiDriverSurname = "O'Connoly";
else if (i = 13)
allTaxiDetails[i].taxiDriverSurname = "McKay";
else if (i = 14)
allTaxiDetails[i].taxiDriverSurname = "Spriggs";
if (i == 13 || i == 1) // initialises wheelchair access (1 7 seat wheelchair, 1 5 seat wheelchair)
allTaxiDetails[i].WheelChairAccessibleVehicle = true;
else
allTaxiDetails[i].WheelChairAccessibleVehicle = false;
allTaxiDetails[i].fareDetailsForTaxi.bookingID = "0";
allTaxiDetails[i].fareDetailsForTaxi.costOfCurrentFare = 0;
allTaxiDetails[i].fareDetailsForTaxi.overAllFareDetails = 0;
allTaxiDetails[i].fareDetailsForTaxi.taxiAvaliable = false;
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.customerCoordinates = 0;
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.customerName = "Null";
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.customerOnRoute= false;
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.customerPhoneNumber = "00000000000";
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.dropOffCoordinates = 0;
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.dropOffLocationName = "Null";
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.nameOfLocation = "Null";
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.seatingRequirement = 5;
allTaxiDetails[i].fareDetailsForTaxi.currentCustomerDetails.wheelchairAccessYesOrNo = false;
if (i != 13 || i!= 14) //Initialises number of seats with 2 seven seater cars
{allTaxiDetails[i].numberOfSeats = 5;}
else
{allTaxiDetails[i].numberOfSeats = 7;}
allTaxiDetails[i].taxiID = (i + 1);
allTaxiDetails[i].taxiAvaliable = true;
allTaxiDetails[i].taxiContainsCustomerYesNo = false;
allTaxiDetails[i].taxiCoordinates = 0;
allTaxiDetails[i].taxiRank = "Train Station";
cout << allTaxiDetails[i].taxiDriverSurname;
i++;
} //Initialise Taxis Method
}
任何帮助将不胜感激 =)
【问题讨论】:
-
对不起,我的意思是 while 循环。傻我。 =)
-
您使用
=而不是==的简单错字。关闭原因现在包括simple typo,投票关闭。 -
如果 (i = 0) 你肯定是指如果 (i == 0) 确实
-
按照老师的建议去做,并始终在启用警告的情况下进行编译。
-
现在Yoda condition 你将使用。
标签: c++ loops for-loop iteration infinite