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.