Vill försöka hämta indata från konsollen i C#.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2014

Vill försöka hämta indata från konsollen i C#.

Hejsan, det är så att jag sitter och skriver lite på ett program, och vill fortfarande kalla mig mindre kunnig än en noob i C#.
Men det är så att mitt program ska kunna fråga användaren om den vill köra en gång till, användaren kommer sedan svara ja eller nej, vilket jag vill omvandla till antingen en 1:a eller 2:a, för att sedan då bestämma om en for-loop ska köras en gång till eller ej.

Console.Write("Vill du köra appen en gång till? ");
RunOneMoreTime = Convert.ToInt32(Console.ReadLine());

Är ungefär så långt jag har kommit. Min tanke är att lägga in en if-sats för att kolla om svaret är ==Y, för att då omvandla det till en 1:a, eller ==N, för att då omvandla det till en 2:a. I så fall borde den if-satsen ligga mellan dessa två kodrader vad jag kan förstå??? Bara för att förtydliga, språket som frågan gäller är C#.

Trädvy Permalänk
Medlem
Registrerad
Okt 2011

Typ såhär...

var foo = Console.ReadLine(); int bar; if (foo == "Y") { bar = 1; } else if (foo == "N") { bar = 0; } if (bar == 1) RunAgain();

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2014

Console.Write("\nVill du köra appen en gång till? "); RunOneMoreTime = Console.ReadLine(); if (RunOneMoreTime == "Y" || RunOneMoreTime == "y") { i = 0; } else if (RunOneMoreTime == "N" || RunOneMoreTime == "n") { i = 2; } else { Console.Write("Du håller på att stänga programmet, tryck på valfri knapp för att avsluta."); Console.ReadKey(); }

Löste det på det här sättet. Nu håller jag på att arbeta med hur stängningen ska gå till. Jag vill nämligen ha två alternativ på sista else-satsen. Antingen trycka på "x" för att stänga det, eller trycka på annan knapp för att starta om for-loopen som allt ligger i en gång till. Funderade på goto, men kändes inte riktigt rätt.

Trädvy Permalänk
Moderator
Plats
Linköping
Registrerad
Okt 2006

Kolla upp while-loopen

Har du åsikter om moderering, frågor eller något annat kan du kontakta mig via shimonu@sweclockers.com

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2009
Skrivet av raffeboy:

Console.Write("\nVill du köra appen en gång till? "); RunOneMoreTime = Console.ReadLine(); if (RunOneMoreTime == "Y" || RunOneMoreTime == "y") { i = 0; } else if (RunOneMoreTime == "N" || RunOneMoreTime == "n") { i = 2; } else { Console.Write("Du håller på att stänga programmet, tryck på valfri knapp för att avsluta."); Console.ReadKey(); }

Löste det på det här sättet. Nu håller jag på att arbeta med hur stängningen ska gå till. Jag vill nämligen ha två alternativ på sista else-satsen. Antingen trycka på "x" för att stänga det, eller trycka på annan knapp för att starta om for-loopen som allt ligger i en gång till. Funderade på goto, men kändes inte riktigt rätt.

Använd en while loop med en switch sats, t.ex.

void Main() { bool loop = true; while (loop) { switch (Console.ReadLine().ToLower()) { case "a": Console.WriteLine("hej a"); break; case "x": loop = false; //avslutar loopen (och programmet i det här fallet) använd Environment.Exit(0); för att avsluta programmet explicit. break; default: // om inget matchar någon av case:n så kommer detta visas Console.WriteLine("Du skrev inte ett giltigt kommando!"); break; } } }

7900x @ 4,7ghz - 1080ti @ 2100