Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ruby - nefunkcni cyklus

Mám nějaké pole do kterého chci ukládat vždy, když napíšu počet hráčů. Cyklus by se měl provést jen tolikrát, kolikrát sem zadal že bude počet hráčů. Ale provede se jen jednou a skript pak pokračuje.Možná by tam byl lepší nějaký jiný loop counter. Nevim už co dělám špatně,v PHP bych to zapsal cyklem for, ale jsem v Ruby uplný začátečník. Díky moc za radu

Code:

i = 0
pl_count = gets.strip
begin
i = i + 1
puts "Zadejte jmeno hrace:"
pl_name = gets.strip
players << {"name" => "#{pl_name}", "score" => "" }
end while i == "#{pl_count}" or pl_name == "end"

Předmět Autor Datum
Máš špatně koncovou podmínku, takže cyklus je funkční, nefunkční je programátor česky: načítej jména…
JoDiK 16.10.2012 09:44
JoDiK
Bohuzel, ted jsem zmenil kod podle tve rady, nicmene ted se cyklus opakuje donekonecna. Samozrejme t…
Mythago 16.10.2012 12:49
Mythago
neznám syntaxi Ruby, ale tohle mi přijde dost divný : i == "#{pl_count}" ještě jsem neviděl jazyk, k… poslední
JoDiK 16.10.2012 18:39
JoDiK

Máš špatně koncovou podmínku, takže cyklus je funkční, nefunkční je programátor
česky: načítej jména hráčů dokud platí, že počítadlo je rovno konečnému počtu, nebo v načteném jméně je konec

správně by mělo asi být
česky: načítej jména hráčů až do splnění podmínky, že počítadlo je rovno konečnému počtu, nebo v načteném jméně je konec

begin
i = i + 1
puts "Zadejte jmeno hrace:"
pl_name = gets.strip
players << {"name" => "#{pl_name}", "score" => "" }
end until i == "#{pl_count}" or pl_name == "end"

To je ale nezávislé na zvoleném programovacím jazyce, to zřejmě neznalost klíčových slov (angličtiny)

Bohuzel, ted jsem zmenil kod podle tve rady, nicmene ted se cyklus opakuje donekonecna. Samozrejme to zastavi vlozeni prikazu end, ale to je spis jen takova pojistka, jinak to tam nema co delat. Opravdu nejak netusim jak to udelat, aby se ten cyklus provedl tolikrat, kolik jsem zadal ze tam bude hracu (v pl_count)
Díky moc

neznám syntaxi Ruby, ale tohle mi přijde dost divný : i == "#{pl_count}"
ještě jsem neviděl jazyk, který by měl proměnnou v uvozovkách

nestačilo by i == pl_count ???
co ta mřížka a složené závorky mají jako dělat? takhle to vypadá že porovnáváš číselnou proměnnou i s textem "#{pl_count}" což samozřejmě nikdy pravda nebude

Zpět do poradny Odpovědět na původní otázku Nahoru