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"
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