Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Ruby

Curso de Ruby

Simón Soriano

Simón Soriano

Uso de condicionales

9/39
Recursos

Aportes 13

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Condiciones

En Ruby, nil y false significan falso, todo lo demás (incluyendo true, 0) significan verdadero. En Ruby, nil es un objeto: por tanto, tiene sus métodos, y lo que es más, puedes añadir los métodos que se quieran.

Métodos condicionales

  • if -> Se ejecuta si se cumple la condición
  • elsif -> Se ejecuta si la condición “if” no se cumple, y se pueden anidar tantos como sean necesarios
  • else -> Se ejecuta si no se cumplen las funciones antes descritas
  • case -> Esta instrucción es muy parecida al if: se crean una serie de condiciones, y se ejecuta la primera condición que se cumpla.
  • unless -> Ruby tiene una forma contraria al if: la instrucción unless. Y digo contraria, por que en if se ejecutaba el bloque (do … end) si se cumplía la condición; con unless se ejecutará el bloque mientras NO se cumpla.

Operadores de comparacion

  • == igual
  • != distinto
  • = mayor o igual que

  • <= menor o igual que
  • mayor que

  • < menor que

Conceptos extraídos de :

En casos de que queramos hacer if en una sola linea, lo podemos hacer de la siguiente manera:

puts "Pantalla de admin" if role == :admin 

Condicionales


Si quieren tener ayuda del editor de textos al escribir código en Ruby, instalen el plugin Ruby para esto.

Para declarar una estructura lógica de If, lo hacemos de la siguiente manera

#básica
if condicion
    
end

# Una condional más grande
if condicion
    
elsif otra_condicional
    
else
    
end

# Código de la condicional
is_authenticated = false

if is_authenticated
    puts "Pantalla de admin"
else
    puts "Pantalla de login"
end

Para ejecutar en la terminal un archivo Ruby poner

ruby archivo.rb

Manejar condicionales en Ruby es relativamente fácil

role = :otro

if role == :admin
    puts "Pantalla de admin"
elsif role == :superadmin
    puts "Pantalla de superadmin"
else
    puts "Pantalla de login"
end

Un pequeño aporte. En Ruby todo es un objeto, por lo tanto:

- true es una instancia de la clase TrueClass
- false es una instancia de la clase FalseClass
- nil es una instancia de la clase NilClass

nil y false tienen como valor booleano false, cualquier otro objeto tiene valor boolenao true

¿Que plugins recomiendan para desarrollo en Ruby con VSCode?

Instalé Ruby 3.1 en Windows 11 y no me servia en la consola correr el comando ruby. Resulta que ruby no se agregó al path al instalarse y tuve que hacerlo manualmente:

En un file explorer (Win + E) le di clic derecho a This PC > Properties > Advanced System Settings > Environment Variables … > System Variables

En ese listado buscar la variable Path y darle editar (comprobar que no aparece ruby) y darle al botón de New, ahí escribir la ruta al bin de mi ruby, en mi caso era: C:\Ruby31-x64\bin despues darle OK, OK, reiniciar mi terminal y/o VSCode y ya por fin pude correr el comando ruby en mi terminal

Profe

Debió considerar dentro del curso a la gente que entró desde 0 y enseñar a vincular V.Code con Ruby y mucho más a correr el condicionales.rb

Condiciones en ruby

is_authenticated = true

if is_authenticated
    puts "Pantalla de admin"
else
    puts "pantalla de login"
end

role = :admin

if role == :admin
    puts "Pantalla de admin"
elsif role == :superadmin
    puts "Pantalla de super admin"
else
    puts "Pantalla login"
end

** Operadores de comparacion**
! :niega la variable
== :igual
!= :distinto

= :mayor o igual que
<= :menor o igual que
:mayor que
< :menor que

mi ejercicio:

is_authenticated = :ultraadmin

if is_authenticated == :admin
puts "Pantalla de admin"
elsif is_authenticated == :superadmin
puts "Pantalla de login"
elsif is_authenticated == :ultraadmin
puts "Pantalla de encuentro"
else
puts "Pantalla de final"
end

ayuda? sucede que el interrete que ocupo Jruby, no me permite invocar los archivoda solo me sale como se muestra en pantalla. alguien puede ayudarme con esto?

Hi there! ¿Por qué se coloca : antes de admin en todos los casos, ¿no funciona igual sin esos dos puntos o por qué son necesarios? Thanks!

Wow una cosa que me estoy fiajndo es que no ocupamos ;
:´( que usad jajajaja