⇦ Ramen Development_

Todo programa puede usar solo WHILE e IF

Cover Image for Todo programa puede usar solo WHILE e IF

¿De verdad necesitamos 'for', 'foreach', 'else', 'else if', 'switch'?
La respuesta puede variar dependiendo del lenguaje de programación, pero en general, no, puedes reemplazarlos haciendo algunos trucos con tus mejores amigos "continue", "break", "return", y un poco de organización en tu código.

Disclaimer: Los ejemplos fueron hechos en C#.

Estructuras de Repetición

FOR

Vamos a empezar por lo básico, el for es solo un while comprimido.

Antes

for(int i=0;i<10;i++)
{
  //Some code
}

Después

int i=0;
while(i<10)
{
	//Some code
	i++;
}

FOREACH

Hacemos lo mismo que con el for, pero, usando un iterador dentro de la estructura del dato.

Antes

foreach(var i in variables)
{
  Debug.WriteLine(i.ToString());
}

Después

int i=0;
while(i<variables.Count)
{
	Debug.WriteLine(variables[i].ToString());
	i++;
}

DO-WHILE

Esto ni siquiera necesita una explicación.

Antes

int option;
do
{
  //Some code
}while(option != 10);

Después

int option=-1;
while(option != 10)
{
	//Some code
}

Estructuras de Control

ELSE/ELSE-IF/SWITCH

Este tip incluso hace tu código mas legible, si creías que necesitabas un else/else if, solo coloca ifs, y cuando entre dentro de un if, hazlo parar. Y pues, el switch son solo if-elseif-else.

Ejemplo de RETURN
Antes

void function(int x)
{
  if(x==1)
  {
    //Some code
  }
  else if(x==2)
  {
    //Another code
  }
  else
  {
    //Another else code
  }
  
  return;
}

Después

void function(int x)
{
  if(x==1)
  {
    //Some code
    return;
  }

  //This replaces an else if statement
  if(x==2)
  {
    //Another code
    return;
  }

  //This replaces the else
  //Another else code
  return;
}

Ejemplo de REPETICION
Antes

int i=0;
while(i<variables.Count)
{
	if(variables[i]==1)
  {
    //Some code
  }
  else if(variables[i]==2)
  {
    //Another code
  }
  else
  {
    //Another else code
  }
  

	i++;
}

Después

int i=0;
while(i<variables.Count)
{
	if(variables[i]==1)
  {
    //Some code
    break;
    //or
    continue;
  }

  if(variables[i]==2)
  {
    //Another code
    break;
    //or
    continue;
  }

  //Another else code
  break;
  //or
  continue;
	i++;
}

Eres libre de usar lo que quieras cuando estás programando, esta solo es una guia en caso de que quieras cambiar por alguna razón tu codigo, o si estás creando un traductor con reglas, de esta manera puedes optimizar tu trabajo, haciendo menos reglas y teniendo menos palabras reservadas.

Más entradas

Cover Image for Como traduje mi portafolio con JavaScript y JSON

Como traduje mi portafolio con JavaScript y JSON

No quería complicarme demasiado en mi portafolio personal para tenerlo listo más rápido y probar algo nuevo. Así que se me ocurrió una solución sencilla utilizando únicamente JavaScript.

Ivan Orozco
Ivan Orozco
Cover Image for ¿Banderas para representar lenguajes?

¿Banderas para representar lenguajes?

¿Debería utilizar las banderas de los países con mayor población que habla ese idioma? ¿cuál es la mejor manera de diseñar las opciones para cambiar de idioma?

Ivan Orozco
Ivan Orozco
Cover Image for ¿Programar con emojis?

¿Programar con emojis?

Los emojis son realmente utiles en algunos casos, pueden añadir emociones a nuestros mensajes para que su verdadero significado no pase desapercibido, pero ¿deberiamos usarlos para programar?

Ivan Orozco
Ivan Orozco
Cover Image for La historia detrás de Easy Simple Job

La historia detrás de Easy Simple Job

La historia detrás de nuestro juego no es complicada, inspirado por un video narrando una historia en Reddit que cuenta la historia de un tipo que consigue un simple pero sospechoso trabajo en una oficina, y ciertas cosas perturbadoras suceden...

Ramen Development Team
Ramen Development Team
Cover Image for Queridos reclutadores de LinkedIn...

Queridos reclutadores de LinkedIn...

Es importante que los reclutadores se tomen el tiempo para revisar el perfil de un candidato antes de enviar una oferta de trabajo.

Ivan Orozco
Ivan Orozco
Cover Image for Autómata de analizador léxico

Autómata de analizador léxico

En este artículo aprenderás a realizar un autómata para de un analizador lexico.

Gustavo Padilla
Gustavo Padilla