Los lenguajes de programación Turing Completo poseen una serie de estructuras para controlar la lógica y el flujo de tu código fuente.
Estructuras de control en la programación
Las estructuras de control permiten declarar condiciones, agrupar instrucciones de código para ejecutarlas de forma sistemática y organizada las veces que necesitemos. Existen diferentes estructuras en la programación en general, y las que Solidity utiliza también existen en muchos otros lenguajes.
1. Condicionales if - else
Las condiciones if - else son la estructura más básica y simple dentro de la programación, le indican al código que si cierta expresión se cumple, se debe ejecutar el bloque de código que está relacionado con tal condición. Es una manera de bifurcar nuestro código para que ocurra una cosa u otra.
if(myCondicion){// Hacemos algo}else{// Hacemos otra cosa}
2. Estructura While
Un While permite ejecutar código N cantidad de veces siempre y cuando una expresión se cumpla.
while(myCondicion){// ...}
El contenido de la estructura while se ejecutará mientras myCondicion sea verdadero.
3. Ciclo for de iteración
Estructura muy similar a while, con la diferencia de que con for se puede definir la cantidad de iteraciones que la estructura tendrá, o sea, la cantidad de veces que el código se ejecutará.
for(uint i =0; i <10; i++){// ...}
En este ejemplo, el ciclo for se ejecutará 10 veces, dado que hemos definido una variable que se autoincrementará en uno por cada iteración y, al cumplirse la condición, el for termina.
Conclusión
Estas son las estructuras básicas y con las que se construye la lógica en cualquier lenguaje de programación. Sin embargo, hay que considerar que entre más complejo sea un programa, esta lógica se puede tornar igual de compleja, con ciclos y condicionales anidados uno dentro de otro.
Es fácil perder el hilo de las instrucciones que se escriben conforme avanza un proyecto real, por lo que es recomendable mantener un orden y un código limpio.
Contribución creada por:Luis Enrique Herrera y Kevin Fiorentino (Platzi Contributors).
While (Permite ejecutar código cada vez que se cumpla una condición repetidamente)
uint veces =1;while(!aplicarBloqueador && veces <=12){ aplicarBloqueador =preguntar(); veces = veces +1;}
For (Permite ejecutar código mientras se usa una confidicón, pero a diferencia del while es que debes definir como quieres que se cumpla esta condición )
for(uint i =0; i <6; i++){ aplicarBloqueador =preguntar();}
buen aporte bro
Buen aporte.
Recomiendo la extensión de Solidity para Visual Studio Code, les dejo el link de descarga
Gracias.
gracias bro, llevaba tiempo buscando algo así
Demasiado básico para mi gusto, me gustaría que vaya directo al grano. Todos sabemos lo que es un If, un For, un While. Y si alguien no lo sabe, que vaya al Curso Gratis de Programación Básica. Solidity no será la mejor forma de aprender a programar para quién no sepa nada.
Muy de acuerdo Kevin
Que buena explicación, los ejemplos aplican muy bien incluso para gente no muy familiarizada con entornos de programación
Primero realice el curso de introducción a solidity (el profesor es bueno). Pero el orden y detalle que llevan en este curso es genial.
Las estructuras de control sirven también para darle un flujo a la aplicación, vía estas estructuras podrás determinar qué caminos se siguen dentro del código según condiciones que vayas determinando.
Muy recomendable antes de entrar a cualquier lenguaje, practicar mucho con este tipo de estructuras (hay más) ya que el código se compone prácticamente de ellas.
Variables de estado
Tipo que son + nombreDeLaVariable
Tipos de variables
Booleans
bool
true - false
!(negación): !🌧
&& (and): !🌧️ && 🔆
|| (or): 🔆 || ☂️
== (igualdad): 1 == 1
≠ (desigualdad): 2 ≠ 1
Integers
uint: 2 (Enteros sin signos o positivos)
int: -2 (Pueden ser enteros con signo, enteros negativos y positivos)
Address
0x5B38…dC4
0x617F…7f2
address payable
Strings
Cadena de texto
string message = “Hola mudo”;
Visibilidad
private
Prodrán ser usadas dentro del contrato
int private bigNumber = 1000000;
public
Podrán ser usadas dentro y fuera del contrato
int public bigNumber = 1000000;
default
Solo se pueden acceder dentro del contrato
int bigNumber = 1000000;
Variables globales
block
Información sobre el bloque
msg
Información sobre la llamada
tx
Información de la transacción actual
Propiedades
block.gaslimit
Límite de GAS que nos permite ejecutar el bloque actual
msg.data
Toda la información enviada en la llamada del contrato
msg.sender
Nos da la dirección de quien realiza la llamada del contrato
Son conceptos de programación básica, si ya programas verás lo genial de estas clases. Como siempre cambia la sintaxis.
hola me sale un error que dice en el compilador:
creation of Identity errored: error encoding arguments : Error : invalid BigNumber string (argument = "value" value = "" code = INVALID_ARGUMENT versión = bignumber / 5.5.0
Hola Victor, exactamente cuando te sale este error ?, nos puedes dar algo más de info?
En deploy debe acceder la informacion de _idNumber, _isWorking, y _name. Son datos random, puede escribir lo que sea.
Hola , pueden ayudarme? porque me sale este error al momento de compilar?
En deploy debe acceder la informacion de _idNumber, _isWorking, y _name. Son datos random, puede escribir lo que sea.
que plataforma se usa ?
No entiendo tu pregunta, que plataforma se usa para que específicamente?, para crear los smart contracts en solidity vamos a usar remix el IDE oficial de ethereum
Pero ahí en ese while con esa && es que las 2 se cumplan no?
La calidad del código podría mejorar, a mi parecer es poco legible. Los nombres que se eligieron para las variables y funciones son poco descriptivas :/
Estructuras de control
if - else
Permite ejecutar instrucciones de código cuando se cumpla una condición
Permite ejecutar código cada vez que se cumpla una condición repetidamente
uint veces =1;while(!aplicarBloqueador && veces <=12){ aplicarBloqueador =preguntar(); veces = veces +1;}
For
Es muy similar a la estructura While, ya que también permite ejecutar código mientras se cumple una condición.
Se debe definir a parte de la condición que se desea cumplir, como avanza la variable que se desea
Si es de uno en uno usamos i++
for(unit i=0; i <6; i++){ aplicarBloqueador =preguntar()}
Si es de dos en dos usamos i += 2
for(unit i=0; i <12; i +=2){ aplicarBloqueador =preguntar()}
RESUMEN CLASE 9:
ESTRUCTURAS DE CONTROL
I.- ESTRUCTURAS DE CONTROL
If - Else
While
For
II.- If / Else
III.- While
IV.- For
Estructuras de control
La función de las estructuras de control nos permiten agrupas intrusiones de código y ejecutarlas las veces que queramos algunas son:
if-else
Esta estructura te permitirá ejecutar intrusiones en función de una condición, generalmente la aplicas en base de un resultado obtenido ejemplo:
Imagina que vas ala playa y hay mucho sol
La condición seria el uso del bloqueador, si te lo aplicas no te recamaras de lo contrario te vas a quemar
En la sintaxis de solidity quedaría de la siguiente manera
If(aplicarBloqueador){
meQuemo = false;
} else{
meQuemo = true;
}
El if else solo puede tener como resultado un true o un false
While
Esta estructura nos permite ejecutar código cada vez que cumpla una condición repetidamente por ejemplo
Si me aplicado bloqueador 12 veces, estaré protegido en caso de que no, aplicarse bloqueador
El solidity esto quedaría así
uint veces = 1;
While(!aplicarBloqueador && veces <= 12){
aplicarBloqueador = preguntar ();
Veces =veces + 1;
}
FOR
Es muy parecida al ciclo while con la diferencia de que integra como la variable ira desarrollándose con cada interacción usaremos el mismo ejemplo que el anterior y quedaría así con solidity