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

Permalänk
Medlem

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#.

Permalänk
Medlem

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();

Permalänk
Medlem

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.

Permalänk
Hedersmedlem

Kolla upp while-loopen

Permalänk
Medlem
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; } } }

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB