No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

5D
15H
21M
8S

Estructuras de control

9/22
Recursos

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).

Aportes 14

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

que clase tan buena donde le doy like :v

Estructuras de control

  • If - Else (Se utiliza cuando se cumple una condici贸n u otra)
if(aplicarBloqueador){
    meQuemo = fasle;
} else {
     meQuemo = true;
}
  • 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();
}

Recomiendo la extensi贸n de Solidity para Visual Studio Code, les dejo el link de descarga

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.

Que buena explicaci贸n, los ejemplos aplican muy bien incluso para gente no muy familiarizada con entornos de programaci贸n

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.

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.

Son conceptos de programaci贸n b谩sica, si ya programas ver谩s lo genial de estas clases. Como siempre cambia la sintaxis.

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
      if (aplicarBloqueador) {
      	meQuemo = false
      } else {
      	meQuemo = true
      }
      
    • 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

      • 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()
      }
      

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鈥C4
      • 0x617F鈥7f2
      • address payable
    • Strings
      • Cadena de texto
      • string message = 鈥淗ola 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
    • msg.value
      • Valor de Ether enviado en la llamada del contrato
    • tx.gasprice
      • Costo en GAS de la transacci贸n actual
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Identity {
	uint256 public idNumber;
	bool public isWorking;
	string public name;
	address public wallet;
	
	constructor(
	    uint256 _idNumber,
	    bool _isWorking,
	    string memory _name
	) {
	    idNumber = _idNumber;
	    isWorking = _isWorking;
	    name = _name;
	    wallet = msg.sender;
	}

}

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

for(uint i=0; i<6; i++){
aplicarBloqueadro = preguntar();
}

Uso de Ciclo for en el mundo real :


  function statsIntelligence() {
    let intelligence = heros.map((hero) => hero.powerstats[0].intelligence);
    let sumaInt = 0;
    for (var i = 0; i < intelligence.length; i++) {
      (sumaInt += parseInt(intelligence[i]) / intelligence.length);
    }
    return sumaInt;
  }