Tag Archive for instrucciones de control

Expresiones booleanas y operadores lógicos

Como en todos los lenguajes, Ruby tiene variables booleanas y operadores lógicos para el manejo de instrucciones de control, como el if, el switch y los ciclos. En realidad, en Ruby existen los objetos booleanos, es decir incluso este tipo de dato es un objeto en Ruby. Déjame explicarte esto claramente porque puede ser un poco confuso, en Ruby existen dos clases peculiares TrueClass y FalseClass, son clases muy peculiares porque tú no puedes crear objetos a partir de esas clases, de hecho, en el lenguaje sólo hay un objeto de la clase TrueClass y es el objeto True, del mismo modo la clase FalseClass sólo es la instancia de un objeto, False. Lo anterior puede parecer un poco confuso, ya que en lenguajes como JAVA true y false son palabras reservadas del lenguaje, y no objetos, como en Ruby, sin embargo su uso es similiar, así que no te preocupes por eso. Veamos a través de un ejemplo cómo es que funcionan los objetos True y False de Ruby.

  if True 
    puts "Esto siempre se ejecuta porque True siempre adopta el valor verdadero de un booleano"
  end
  if False
    puts "Esto nunca se ejecutara porque False siempre adopta el valor falso de un booleano"
  end

El ejemplo, creo expresa el funcionamiento de cada uno de ellos, aunque en realidad no es práctico. Antes de pasar a las expresiones lógicas, cabe mencionar que sólo dos clases son falsas en Ruby, es decir, cumplen un valor falso en un boolean, éstas son FalseClass y NilClass, hablaremos del objeto Nil más adelante en el curso. Operadores Lógicos. Si has programado en cualquier lenguaje, seguro estás familiarizado con las operaciones lógicas, que básicamente son expresiones que sólo pueden retornar un valor booleano verdadero cuando se cumple una condición, o un valor booleano falso cuando no se cumple la condición, en el caso particular de Ruby, sería retornar el objeto True y el objeto False respectivamente. Cabe apuntar que la condición a evaluar está dada por ciertos operadores, en este tutorial veremos los siguientes.

  • “< ” Menor que, evalúa si el objeto de la derecha es menor que el de la izquierda. Ejemplo:
     if 2<3 puts "2 es menor que 3"
  • “> ” Mayor que, evalúa si el objeto de la derecha es mayor que el de la izquierda. Ejemplo:
     if 3>2 puts "3 es mayor que 2"
  • “and/&& ” Se puede usar “&&” y “and”, ambos cumplen la función de retornar True cuando dos condiciones son True.
     if 2<3 and 3>2 puts "Retorna True :)"
  • “or/&& ” Se puede usar “||” y “or”, ambos cumplen la función de retornar True cuando una de dos condiciones es True, o ambas son True.
     if 2<3 or 3>2 puts "Alguna de las dos condiciones se cumplio"

Como anotación en los operadores and y or, te recomiendo usar las palabras en lugar de los símbolos || y &&. Como ves son los operadores básicos, no tomamos en cuenta el operador de negación porque en el siguiente artículo conocerás la contraparte de la instrucción if. En general estas operaciones, como te mencionaba, se usan para controlar el flujo de la aplicación, pero puede usarse para asignación de valores, ejecutar excepciones y más. Por ahora lo dejaremos en lo básico y comenzaremos usándolas con instrucciones de control en los siguientes tutoriales.