Ejercicio: Devolver valores booleanos de métodos

Completado

Los métodos con tipos de valor devuelto booleanos pueden ser simples, pero son útiles para consolidar el código. Se puede llamar a métodos que devuelven valores bool para evaluar la entrada de datos en cualquier lugar, en instrucciones if, en declaraciones de variables, etc. En este ejercicio, adquirirá cierta experiencia en la creación y el uso de métodos con tipos de valor devuelto booleanos.

Creación de un método que devuelve un valor booleano

Supongamos que es un candidato en una entrevista para un puesto de programador. El entrevistador quiere que compruebe si varias palabras son un palíndromo. Una palabra es un palíndromo si lee igual hacia atrás y hacia delante. Por ejemplo, la palabra racecar es un palíndromo. Comencemos.

  1. En el editor de Visual Studio Code, elimine cualquier código que haya de los ejercicios anteriores.

  2. Escriba el siguiente código en el editor:

    string[] words = {"racecar" ,"talented", "deified", "tent", "tenet"};
    
    Console.WriteLine("Is it a palindrome?");
    foreach (string word in words) 
    {
        Console.WriteLine($"{word}: {IsPalindrome(word)}");
    }
    

    Este código establece algunos casos de prueba y hace referencia a un método denominado IsPalindrome. Las palabras y la salida del método IsPalindrome se imprimen en las instrucciones Console.WriteLine.

  3. Agregue una nueva línea de código en blanco y cree el método bool con el siguiente código:

    bool IsPalindrome(string word) 
    {
        return true;
    }
    
  4. Piense en cómo podría comprobar si una palabra es un palíndromo.

    Una manera de comprobarlo es comparar la primera y la última letras de la palabra. Si coinciden, comparar la segunda y la penúltima letras de la palabra. Si llega a la mitad de la palabra, significa que se han comparado todas las letras y coinciden. Si alguna letra no coincide, la palabra no es un palíndromo.

  5. Actualice el método IsPalindrome con el código siguiente:

    bool IsPalindrome(string word) 
    {
        int start = 0;
        int end = word.Length - 1;
    
        while (start < end) 
        {
            if (word[start] != word[end]) 
            {
                return false;
            }
            start++;
            end--;
        }
    
        return true;
    }
    

    Observe las variables start y end que apuntan a los caracteres primero y último de la cadena. El bucle se interrumpe cuando se llega a la mitad de la palabra, es decir, cuando start y end apuntan al mismo carácter o se cruzan. Los punteros se mueven hacia dentro cada vez que hay una coincidencia. Si no coinciden, el método finaliza y devuelve false.

    Ahora el método comprueba correctamente si una palabra es un palíndromo y devuelve true o false en consecuencia.

Comprobar el trabajo

En esta tarea, ejecutará la aplicación desde el terminal integrado y comprobará que el código funciona correctamente. Empecemos.

  1. Guarde el trabajo con Ctrl + S o use el menú "Archivo" de Visual Studio Code.

  2. Si es necesario, abra el panel del terminal integrado de Visual Studio Code.

    En el panel EXPLORADOR, para abrir un terminal en la ubicación de la carpeta TestProject, haga clic con el botón derecho en TestProject y, luego, seleccione Abrir en el terminal integrado.

  3. En el símbolo del sistema del terminal, escriba dotnet run.

  4. Compruebe que el código genera la salida siguiente:

    Is it a palindrome?
    racecar: True
    talented: False
    deified: True
    tent: False
    tenet: True
    

    Si el código muestra resultados diferentes, deberá revisarlo para encontrar el error y realizar las actualizaciones correspondientes. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere el resultado esperado.