Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

¿Do... While?

10/25
Recursos

Aportes 10

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

¿Realmente tiene algún uso el ciclo do… while? 🤔

.
Este ciclo es muy similar al while, con la particularidad de que no importa si tu conidición es verdadera o es falsa, tu ciclo se va a ejecutar por lo menos una vez, al menos una, ya si se vuelve a ejecutar o no dependerá de si la condición es verdadera o falsa, pero al menos una vez sí que se va a ejecutar 😄.
.
¿Pero de qué nos sirve este ciclo? Justamente en aquellos casos en donde queramos ejecutar nuestra lógica por lo menos una vez, este ciclo nos ahorra el uso de un if innecesario en ciertas ocasiones, por ejemplo, cuando queremos guardar el nombre de un usuario.
.
Cuando queremos hacer esto, debemos verificar si el nombre de usuario escrito no existe, y si sí existe entonces debemos pedir otro nombre de usuario, esto lo podemos hacer fácilmente con un ciclo do… while tal como vemos en la clase 😉
.
¿Qué otros casos de uso se te ocurren para este ciclo? 👀

Aquí mi humilde aporte

<?php

$username = readline("Por favor, ingresa tu nuevo nombre: ");
$existe = in_array($username, $usernames);

if ($existe) {
    echo "Existe \n";
    
    while ($existe = in_array($username, $usernames)) {
        $username = readline("Por favor, ingresa tu nuevo nombre: ");
        
        if ($existe = in_array($username, $usernames))
            echo "Existe \n";

        else 
        echo "Registro exitoso \n";         
        
    }
}

else {
    echo "Registro exitoso";
}

Like si entendiste que el chiste “Master / main” como una referencia a GitHub.
ja ja ja

<?php

$usernames = ["Pepito123", "Mr.Michi", "RetaxMain", "kevin"];

$username = readline("Ingrese un nuevo nombre de usuario: ");


if (in_array($username, $usernames)) {
    while (in_array($username, $usernames)) {
        echo "Este nombre ya existe\n";
        $username = readline("Ingrese un nuevo nombre de usuario: \n");
    }
    array_push($usernames, $username);
    echo"Nombre de usuario valido, ha sido almacenado";
} else {
    array_push($usernames, $username);
    echo "Nombre de usuario valido";
}

var_dump($usernames);

Do … While se puede utilizar para evitar que se repita información en la base de datos

Reto sin usar do-while

$usernames = array ("Pepito123", "Mr.Michi", "Retax");
$username = readline("Por favor, ingresa tu nuevo nombre de usuario: ");

while(in_array($username, $usernames)){
    $contador=0;
    echo "Este nombre ya existe\n";
    $username = readline("Por favor, ingresa tu nuevo nombre de usuario: ");
    $contador++;
}
if($contador==1){
    echo "Tu nombre ha sido agregado\n";
}

Hola! realmente con while únicamente se complica mas el código, aqui le dejo mi humilde aporte:
$usernames = [“pepito123”, “Mr. michi”, “juan123” ];
$contador = 0;
while ($contador <= 0)
{
$username = readline (“Ingresa un usuario diferente a: pepito123, Mr. michi, juan123: \n”);
if (in_array($username,$usernames))
{
echo “usuario ya existe”;
}

else
    {
        echo "usuario creado exitosamente"; 
        $contador += 1;
    }

}

Le avisamos al usuario si ya existe el nombre que intentan ingresar:

<?php

//Ejecuta el código por lo menos una vez

$usernames = ["Francisco", "Javier", "Luis"];
$exit = false;

do {
    $username = readline("Ingresa tu nombre de usuario: ");

    echo (in_array($username,$usernames)) ? "Este usuario ya existe \n" : "Usuario agregado \n";

    
} while (in_array($username,$usernames));

El ciclo while y do while me quedaron relativamente similares, sólo tengo una línea de código adicional en el while respecto al do while.

Este es el código que capturé del while:

<?php
echo `clear`;
$usernames = ['Carlos', 'Jose', 'Juan', 'Felipe', 'Esteban'];
$username  = readline('Por favor, ingresa tu nuevo nombre de usuario: ');

while (in_array($username, $usernames)) {
    if (in_array($username, $usernames)) {
        echo "Ese nombre ya existe. Capture uno diferente.\n";
        $username = readline('Por favor, ingresa tu nuevo nombre de usuario: ');
    }
};

En el caso del do while, este fue el que hicimos:

<?php
echo `clear`;
$usernames = ['Carlos', 'Jose', 'Juan', 'Felipe', 'Esteban'];

do {
    $username = readline('Por favor, ingresa tu nuevo nombre de usuario: ');
    if (in_array($username, $usernames)) {
        echo "Ese nombre ya existe. Capture uno diferente.\n";
    }
} while (in_array($username, $usernames));

Probablemente el tema esté en que el programador se ahorra la primera petición de datos con el do while, pero fuera de ello funcionan de manera similar.

Entendi la referencia de github en RetaxMain