3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Q:
    Bijdrager
    renzow18

    Ruby code probleem [Beantwoord]

    Hallo OMT’ers,
    Ik heb een klein probleem met Ruby (niet On Rails!)
    Dit is m’n code:

     
    #--------------------------------------------------------------------------------
    #	Gemaakt door Renzo Westerbeek
    #	In mei 2012
    #--------------------------------------------------------------------------------
    #Alle informatie over hoeveelheden
    dagenInJaar = 365
    urenInDag = 24
    minutenInUur = 60
    secondenInUur = 60
    #Vraagt naar data
    puts "Wat is je geboorte jaar?"
    mijnJaar = gets.chomp
    puts "Wat is je geboorte maand?"
    mijnMaand = gets.chomp
    if mijnMaand == "Januari"
    	mijnMaandGetal = 1
    else
    	if mijnMaand == "Februari"
    	mijnMaandGetal = 2
    else
    	if mijnMaand == "Maart"
    	mijnMaandGetal = 3
    else
    	if mijnMaand == "April"
    	mijnMaandGetal = 4
    else
    	if mijnMaand == "Mei"
    	mijnMaandGetal = 5
    else
    	if mijnMaand == "Juni"
    	mijnMaandGetal = 6
    else
    	if mijnMaand == "Juli"
    	mijnMaandGetal = 7
    else
    	if mijnMaand == "Augustus"
    	mijnMaandGetal = 8
    else
    	if mijnMaand == "September"
    	mijnMaandGetal = 9
    else
    	if mijnMaand == "Oktober"
    	mijnMaandGetal = 10
    else
    	if mijnMaand == "November"
    	mijnMaandGetal = 11
    else
    	if mijnMaand == "December"
    	mijnMaandGetal = 12
    else
    	puts "Type wat in!"
    puts "Wat is je geboorte dag?"
    mijnDag = gets.chomp
    #Hier converteert hij alles naar precieze leeftijd.
    oudJaren = 2012 - mijnJaar.to_i
    oudMaanden = mijnMaandGetal.to_i - 5
    oudDagen = mijnDag.to_i - 9
    oudJarenDef = oudJaren.to_i - 1
    oudMaandenDef = 12 - oudMaanden.to_i
    puts "Je bent " + oudJarenDef.to_s + " jaren oud, " + oudMaandenDef.to_s + " en " + oudDagen.to_s + " dagen oud."
     

    Nu krijg ik deze melding in terminal bij het uitvoeren van het programma:

     
    192:ruby User$ ruby leeftijdprogramma.rb
    leeftijdprogrammaleeftijd2.rb:85: syntax error, unexpected $end, expecting kEND
    ... oudDagen.to_s + " dagen oud."
     

    (er staat ook nog een ^ onder de “d” van ” dagen oud
    Weet iemand wat er aan de hand is?
    Alvast bedankt,
    renzow18

    Bijdrager
    renzow18

    Oja, de omt website heeft op sommige plekken in de code

    </p><p>

    tussen gezet, dit zit er niet in in m’n eigen versie…

    Bijdrager
    Verwijder

    Vreemd, iemand die denkt, zonder te kunnen programmeren, even een app te maken krijgt veel antwoorden en het advies om eenvoudig te beginnen. Iemand die wel eenvoudig begint en vast zit krijgt geen reacties. Blijkbaar programmeert hier niemand in Ruby.

    Bij zo’n klein programmaatje kan het probleem niet ingewikkeld zijn dus ik heb even gekeken. Ik heb nog nooit iets in Ruby gedaan dus misschien beweer ik wel verkeerde dingen maar het leek me wel leuk om er eens naar te kijken.

    De syntax voor een if statement is bijvoorbeeld:

    if customerName == "Fred"<br />
    	print "Hello Fred!"<br />
    else<br />
    	print "You're not Fred! Where's Fred?"<br />
    end

    Er moet dus “end” aan het eind. Dit moet bij elke if, ook als bij de else weer een if staat:

    if customerName == "Fred"<br />
    	print "Hello Fred!"<br />
    else<br />
    	if customerName == "John"<br />
    		print "Hello John!"<br />
    	else<br />
    		if customername == "Robert"<br />
    			print "Hello Bob!"<br />
    		end<br />
    	end<br />
    end

    Als je bij de else weer een if wilt dan kan je het inkorten:

    if customerName == "Fred"<br />
    	print "Hello Fred!"<br />
    elsif customerName == "John"<br />
    	print "Hello John!"<br />
    elsif customername == "Robert"<br />
    	print "Hello Bob!"<br />
    end

    Het kan zelfs nog korter:

    if customerName == "Fred" : print "Hello Fred!"<br />
    elsif customerName == "John" : print "Hello John!"<br />
    elsif customername == "Robert" : print "Hello Bob!"<br />
    end

    Ruby zou wel wat duidelijkere meldingen mogen geven. Dit heeft niets met strings of de d in ” dagen oud.” te maken.

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.