Hjälp med C# while loop programmering 1

Permalänk
Medlem

Hjälp med C# while loop programmering 1

Hej alla glada!

Har börjat läsa programmering 1 (C# och Python) och har fastnat i en uppgift med while loop i C#.
Det jag vill göra är att jämföra användarens input (int old = year) där användaren behöver skriva in bilens årsmodell och sen jämföra det med dagens datum.

Any ideas ?

Tack på förhand

Permalänk
Medlem

Innan du ber om hjälp så får du gärna berätta mer om dina egna tankegångar och hur du försöker lösa uppgiften. Det blir mer givande för dig om vi inte bara ger dig en lösning.

PS. Även om du inte kan skriva faktisk fungerande kod så kan lite pseudokod hjälpa dig räta ut dina egna tankar.

Permalänk
Medlem

Ja, det har du rätt i
Skriver koden om en liten stund eller ev. psuedokoden.

Permalänk
Medlem

Här kommer mer info.

Jag behöver be användaren att fylla i bilens årsmodell (som är en INT)
Sedan behöver jag jämföra (While loop) användarens input dvs årsmodell och jämföra med dagens datum så att användaren har inte fyllt i fel år dvs bilens årsmodell får inte överstiga den aktuella månaden och det aktuella året.

Eller i kod:

Console.WriteLine (" Årsmodell: ");
int carYear = Int.ConvertTo32.(Console.ReadLine());

while loop (carYear > dagens datum)
{
Console.WriteLine(" Fel årsmodell");
Console.WriteLine("Årsmodell: ");

}

Skriver snabbt i mobilen så räkna med några misstag i texten

Permalänk
Medlem

*Redigerad för att förtydliga*

Som du har skrivit koden nu kommer du fastna i loopen i oändlighet om man skriver in en årsmodell större än dagens datum.
Testa att inkludera "int carYear = Int.ConvertTo32.Console.ReadLine());" igen så man kan ändra carYear i loopen.

Console.WriteLine (" Årsmodell: ");
int carYear = Int.ConvertTo32.(Console.ReadLine());

while loop (carYear > dagens datum)
{
Console.WriteLine(" Fel årsmodell");
Console.WriteLine("Årsmodell: ");
int carYear = Int.ConvertTo32.(Console.ReadLine());
}

För att få nuvarande år i C# kan du använda DateTime.Now.Year

Permalänk
Medlem
Skrivet av johnlennonx:

*Redigerad för att förtydliga*

Som du har skrivit koden nu kommer du fastna i loopen i oändlighet om man skriver in en årsmodell större än dagens datum.
Testa att inkludera "int carYear = Int.ConvertTo32.Console.ReadLine());" igen så man kan ändra carYear i loopen.

Console.WriteLine (" Årsmodell: ");
int carYear = Int.ConvertTo32.(Console.ReadLine());

while loop (carYear > dagens datum)
{
Console.WriteLine(" Fel årsmodell");
Console.WriteLine("Årsmodell: ");
int carYear = Int.ConvertTo32.(Console.ReadLine());
}

För att få nuvarande år i C# kan du använda DateTime.Now.Year

Hej,

Ja, det med DateTime har hjälpt mig enormt men när jag skriver
int old = int.COnvertToInt32(Console.ReadLine()) i while loop så får jag inte det fungera. Det står att det går inte använda samma int eller parametrar i loopen.

Så här ser koden nu och jag får inte ihop det.

Console.WriteLine(" Årsmodell:");

int year = DateTime.Now.Year;
int old = Convert.ToInt32(Console.ReadLine());

while (old > year)
{
Console.WriteLine("Skriv in rätt årsmodell:");
Console.WriteLine("Årsmodell:");
int old = int.Convert.ToInt32(Console.ReadLine());

}

Permalänk
Hedersmedlem

Hej!

Skriv inte "int old" inuti while-loopen, det du gör då är att skapa en *ny* int-variabel som endast lever "inuti" loopen, du använder alltså inte samma "old"-variabel som skapade precis innan loopen.

Ta helt enkelt bort "int" från raden inuti loopen så bör det funka bättre.

P.S. När du postar på forumet, lägg gärna in din kod mellan [code]och [/code] så att så att indentering etc blir rätt.

Permalänk
Medlem
Skrivet av pv2b:

Hej!

Skriv inte "int old" inuti while-loopen, det du gör då är att skapa en *ny* int-variabel som endast lever "inuti" loopen, du använder alltså inte samma "old"-variabel som skapade precis innan loopen.

Ta helt enkelt bort "int" från raden inuti loopen så bör det funka bättre.

P.S. När du postar på forumet, lägg gärna in din kod mellan [code]och [/code] så att så att indentering etc blir rätt.

Hej

Ja, det funkar utan "int" före old i While loopen.
Stort Tack!

Permalänk
Medlem
Skrivet av MakVelo:

Hej

Ja, det funkar utan "int" före old i While loopen.
Stort Tack!

Ja sorry var jag som var lite snabb med ctrl+c ctrl+v där och tog med "int" från din tidigare kod.

Permalänk
Medlem
Skrivet av johnlennonx:

Ja sorry var jag som var lite snabb med ctrl+c ctrl+v där och tog med "int" från din tidigare kod.

Det är lugnt!

Du hjälpte med enormt med DateTime. Hade kämpat med det ett tag. Fick se massa olika YT videos och läste en del på nätet med hittade inte exakt om hur man jämför med endast år eller månad + år i While Loop.

Stort Tack till dig med!

Permalänk
Medlem
Skrivet av MakVelo:

Det är lugnt!

Du hjälpte med enormt med DateTime. Hade kämpat med det ett tag. Fick se massa olika YT videos och läste en del på nätet med hittade inte exakt om hur man jämför med endast år eller månad + år i While Loop.

Stort Tack till dig med!

Förmodligen för att du just hakar upp dig på while-loopen och försöker hitta något som gör precis som det du vill.

Men det är lite så med programmering i början, du söker alldeles för specifikt mot ditt egna problem, tar med saker som inte har någon som helst betydelse vilket bara gör det svårare att hitta rätt information. Programmering handlar väldigt mycket om att kunna "googla" fram rätt information.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz