Okej, har testat mig fram en del med modulus operatorn, jag använder den i detta fall då vi har gått igenom det innan så jag "bör" ju kunna den, har dock blivit mkt fokus på massa andra saker inom programmeringen så den har kommit lite i skymundan. Jag har en parkering och en multidimensionell array med 100 rader och 2 kolumner. Syftet med denna metod var att när jag lägger till en bil skall platsen bli röd för "upptagen", går såklart att göra det på mycket bättre sätt men av någon anledning fungerar det, förklara gärna för mig vad jag har gjort med modulus operatorn, ska även snygga till raderna osv imorgon.
Satt bara och matade in olika värden och har försökt googla men poletten trillar inte riktigt ner när det kommer till vad den gör.
Console.WriteLine("Parking lot: \n\n");
for (int row = 0; row < 100; row++)
{
if (allVehicles[row, 0] == null && allVehicles[row, 1] == null)
{
if (row % 1 == 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("{0} ", row + 1);
Console.ForegroundColor = ConsoleColor.Gray;
}
}
else if (allVehicles[row, 0] != null || allVehicles[row, 1] != null)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("{0} ", row + 1);
Console.ForegroundColor = ConsoleColor.Gray;
}
}
Svårt att säga då man inte ser hela din kod, vad består din array av till att börja med?. Är det objekt då du gör null checkar?
Istället för else-if bör du bara kunna göra en else. Om allVehicles[row, 0] och allVehicles[row, 1] inte är null så är ju någon av de i else-if sanna, så då räcker det att göra en else.
Vet dock inte om koden fungerar som du tänkt nu, för om första if-satsen är korrekt men din modulo ger false (vilken den dock aldrig gör nu) så kommer den inte att skriva ut talet alls. Modulo tar som jag skrev ovan, resten som blir kvar av en division. Vilket ofta används för att skriva ut jämna/udda tal eller t.ex. skapa en grid där varannan rad är i en annan färg.
Din modulo kommer i detta fall alltid att vara sann då divisioner med 1 inte ger rest. Så du kan ta bort din if-sats med modulo och få samma resultat.
Sedan istället för att hårdkoda in 100 i din loop bör du använda allVehicles.GetLength(0) för att hämta ut längden på din första dimension i arrayen (rows). Detta är för att om du skulle vilja utöka dina parkeringsplatser med fler rader så behöver du ändra koden på flera stället. Detta är ofta är grunden till att konstiga buggar kan uppstå, då man kommer ihåg att ändra på ett ställe men glömmer på det andra.