4 votes

La première valeur est toujours considérée comme fausse lors de la recherche d'un nombre ?

Ce que j'essaie de faire, c'est de permettre à l'utilisateur de rechercher combien de false o true sont enregistrées dans un fichier bool Vektor Il est également important que le programme gère les erreurs d'entrée.

Je suppose que je dois utiliser Convert.Boolean mais je ne sais pas comment. Pour l'instant, j'obtiens toujours la même chose, que je cherche des chiffres ou des lettres.

static void Main(string[] args)
{
    Random newRandom = new Random();
    int slumpTal = newRandom.Next(1, 101);
    bool[] boolVektor = new bool[slumpTal];

    //var nacas = Convert.ToBoolean(Convert.ToInt32("0"));

    for (int i = 0; i < boolVektor.Length; i++)
    {
        int slump = newRandom.Next(0, 2);
        if (slump == 0)
            boolVektor[i] = true;
        else
            boolVektor[i] = false;
    }
    {
        Console.Write("Skriv in sökOrd: ");
        string searchWord = Console.ReadLine();
        bool search = false;

        for (int i = 0; i < boolVektor.Length; i++)
        {
            if (boolVektor[i] == search)
            {
                Console.WriteLine("The following were found: " + boolVektor[i]);
                search = true;
            }
            if (!search)
            {
                Console.WriteLine("Your search failed");
            }
        }
        Console.ReadLine();
    }
}

4voto

Mong Zhu Points 15038

Pour rechercher une valeur d'un certain type de données dans un tableau, vous devez convertir l'entrée de l'utilisateur dans ce type de données. Ensuite, vous comparez la valeur convertie de la même manière que vous le faites actuellement.

La conversion peut être effectuée de la manière suivante :

Console.Write("Skriv in sökOrd: [TRUE|FALSE]");
string searchWord = Console.ReadLine();
bool search = Convert.ToBoolean(searchWord);

bool foundAnyMatches = false

for (int i = 0; i < boolVektor.Length; i++)
{
    if (boolVektor[i] == search)
    {
        Console.WriteLine("The following were found: " + boolVektor[i] + 
        "Index: " + i);
        foundAnyMatches = true;
    }
}
if (!foundAnyMatches)
{
    Console.WriteLine("Your search failed");
}

et ne modifiez pas le search valeur ! parce que vous l'utilisez comme condition de recherche !

EDITAR:

En ce qui concerne la gestion des données erronées, vous pouvez placer la conversion dans un fichier try/catch ou vous pouvez utiliser le bloc Boolean.TryParse() méthode

3voto

EpicKip Points 3220

J'ai fait fonctionner votre méthode actuelle et j'ai expliqué certaines choses dans les commentaires :

Random newRandom = new Random();
int slumpTal = newRandom.Next( 1, 101 );
bool[] boolVektor = new bool[ slumpTal ];

for ( int i = 0; i < boolVektor.Length; i++ )
{
    int slump = newRandom.Next( 0, 2 );
    if ( slump == 0 )
        boolVektor[ i ] = true;
    else
        boolVektor[ i ] = false;
}

Console.Write( "True/False: " );
bool search = Convert.ToBoolean(Console.ReadLine()); //Thanks Mong Zhu
bool foundMatches = false;

for ( int i = 0; i < boolVektor.Length; i++ )
{
    if ( boolVektor[ i ] == search )
    {
        //If you do boolVektor[i] it will just show true/false
        Console.WriteLine( $"The following index is found: {i} " );
        foundMatches = true;
    } 
}
if ( !foundMatches ) //We check if the search failed here because now the search is finished
{
    Console.WriteLine( "Your search failed" );
}
Console.ReadLine();

Si vous souhaitez compter le nombre d'occurrences de la saisie de l'utilisateur, remplacez le champ for boucle de cette manière :

int count = boolVektor.Where( row => row == search ).Count();
if(count != 0)
{
    Console.WriteLine( $"{count} items were found" );
}
else
{
    Console.WriteLine( "Your search failed" );
}
Console.ReadLine();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X