Wypisane sumy liczb w siszarp

Wypisane sumy liczb w siszarp
Murzynek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
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ć

S2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 41
0

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

AN
  • Rejestracja: dni
  • Ostatnio: dni
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.

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
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

Grzegorz Świdwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 385
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

Undo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 41
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.