Nejste přihlášen/a.
Zdravím, mám udělat program do kterého zadávám čísla do té doby než zadám číslo 6, na to zareaguje tak že vypíše počet pokusů které jsem potřeboval než jsem zadal číslo 6.
Víte někdo jak?
Dělal bych to asi přes while ale nejsem si jistý jak
No rozhodně budeš potřebovat while, nějakou proměnnou, způsob jak číst z konzole čísla, vědět jak zjistit zda je zadané číslo 6tka a jak z while odejít (nebo to do něj rovnou zakomponovat od začátku).
Pak si udělej programovou logiku tak jak jde za sebou, to by ti mělo pomoct. Na tomhle nic moc složitého není, pokud znáš všechny prvně vyjmenované věci tak by neměl být problém to zkusit do sebe poskládat.
Je to Console nebo Forms?
V Console to bude nějak:
int pokus=1;
for (; ; pokus++) {
int num=int.TryParse(Console.ReadLine());
if (num==6) break;
}
Console.WriteLine("pokus: "+pokus);
Ve Forms přidáte nad Constructor proměnnou int pokus=0;
pak event do něj něco jako: pokus++; if (num==6){Console.WriteLine("pokus: "+pokus); ... }
Ježiši
On sotva zvládá while smyčku a ty mu jako ukázku dáš tu nejautističtější for-smyčku kterou takhle nikdo nezapisuje a ani tím nedojde k nějakému zjednodušení.
Když už tam musíš tlačit special-snowflake zápis for smyčky tak to aspoň udělej aby to k něčemu bylo:
int pokusu = 0;
for (int num = 0; num != 6; pokusu++)
{
int.TryParse(Console.ReadLine(), out num);
}
Což je pořád příšerné ale aspoň to poskytuje nějaké "zkrácení" ale pořád by tě s tím každý druhý poslal někam protože z něčeho co jde pochopit okamžitě jedním pohledem je něco nad čím se musíš pozastavit pokud jsi to sám nenapsal.
Máš pravdu je to trochu nepřehledné, normálně bych to zapsal takhle:
int pokus=1;
for (int num=int.Parse(Console.ReadLine()); num!=6; pokus++) {} Console.WriteLine("pokus: "+pokus);
Ale stejně si to JIP upraví.
No jasně, tohle se sice nezkompiluje protože takhle int.TryParse nefunguje. Ale moje pointa byla, že by ho takováhle smyčka akorát brutálně zmátla a zde není žádný důvod to tlačit do for cyklu když by tu byl while mnohem přehlednější zvlášt pro někoho kdo je momentálně na úrovni této otázky.
Máte pravdu přepsal sem se:
int pokus=1;
for (; int.Parse(Console.ReadLine())!=6; pokus++) {} Console.WriteLine("pokus: "+pokus);
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.