Wypisane sumy liczb w siszarp

0

Mam jeszcze jeden problem z programami w si szarpie
Jako ćwiczenie miałem napisać program, który liczy sumę x liczb, a po wcisnieciu escape podaje te sume

Prawie umiem to zrobic na petli for - to znaczy umiem policzyc sume np. 10 czy 20 liczb

using System;

public class Program
{
public static void Main()
{

    Console.WriteLine("Wpisuj liczby: ");
	int suma = 0;
	for (int i = 0; i < 10; i++)
	{
		int liczba = Convert.ToInt32(Console.ReadLine());
		suma = suma + liczba;
	}
	
	Console.WriteLine("Suma liczb to: " + suma);
}

}

Żeby zrobić sumę liczb dopóki użytkownik nie poda escape to nie wiem jak zrobić.
Wiem że chyba trzeba pętli while(true) {

}

Tylko nie wiem jak sprawdzić ten escape z INta żeby brejka dać

0

Przeczytaj: [https://docs.microsoft.com/en-us/dotnet/api/system.consolekeyinfo?view=net-5.0]

0

Musiałbyś napisać własny zamiennik funkcji Console.ReadLine(). Ta funkcja działałaby w pętli, gdzie w każdej iteracji program czeka na naciśnięcie klawisza, reaguje na klawisze cyfr, Enter i Esc, jak się naciśnie Enter, to wychodzi z pętli i zwraca wprowadzony napis, jak Esc, to zamyka program, a jak cyfrę, to dopisuje ją do napisu.

0

Wbrew pozorom to dość trudne zadanie jeśli chcesz zachować istniejące zachowanie ReadLine - tj. przesuwanie kursora, cofanie, przewijanie ostatnio wprowadzonych wartości przy pomocy strzałek w górę i dół.
Tu masz częściowe implementacje https://stackoverflow.com/questions/31996519/listen-on-esc-while-reading-console-line

W najprostszym przypadku możesz tylko dozwolić naciskanie Enter, Esc i cyfr. Do tego celu użyj Console.ReadKey i reaguj odpowiednio na Key i KeyChar

0

Za pomocą pętli do-while zrobisz to co chcesz czyli prawdopodobnie liczba-enter-liczba-escape. Stworz bufor który będzie zapisywał w ciągu znaki które wprowadzisz console.readkey(). Gdy bufor napotka enter wtedy konwertujesz bufor na liczbę, liczbę dodajesz do listy, czyścisz bufor i czekasz na kolejne znaki zaczynając procedurę od nowa. Gdy napotkasz escape analogicznie czytasz liczbę tylko dodatkowo po dodaniu liczby do listy sumujesz wszystkie liczby z listy

0

Pytam tak z ciekawości w tytule "siszarp" to specjalnie? Czy przypadek :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1