-5
votes

Pourquoi devrais-je taper i ++? en dehors du bloc If?

Lorsque vous trouvez la valeur max à partir d'un tableau Pourquoi devrais-je taper i ++ code> en dehors du bloc code> si code> bloque?

int[] x = new int[] { 5, 7, -100, 400, 8 };

int i = 1;
int max;

max = x[0];

while (i < x.Length)
{
    if (x[i] > max)
    {
        max = x[i];
    }
    i++;
}
Console.WriteLine("MAX="+max);


8 commentaires

Qui / qu'est-ce qui dit que tu devrais?


Parce que vous n'augmentez que i si la valeur à l'index, je devais être supérieur à max si c'est à l'intérieur du bloc si le bloc. Nous voulons l'incrémenter sur chaque itération.


Il s'agit d'un modèle classique pour , je vous suggère de l'utiliser pour (i = 1; i ... en fait que nous venons de nous > x.max ();


Ou simplement remplacer la chose entière avec console.writeline ("max =" + (nouveau [] {5, 7, -100, 400, 8} .max ());


Pourquoi pensez-vous que cela devrait être à l'intérieur du si ?


Honnêtement, ce n'est pas un problème codant de son problème logique, il n'a rien à voir avec le code et plus à faire avec le comptage et devrait être fermé


Je suis vraiment désolé pour ce genre de question stupide. (Je reçois tellement de points moins: D) Mais je suis nouveau dans ce ...


Ignorer les points négatifs. Ils ne veulent rien dire. Si vous avez appris quelque chose de nouveau, aujourd'hui était une bonne journée!


4 Réponses :


4
votes

Si vous avez uniquement incrémenté i intérieur le bloc si bloque, puis dès que la condition x [i]> max < / Code> Évalue à False , i ne serait pas incrémenté. Et puisque nous utilisons i comme indice de l'élément de tableau à examiner, la valeur de x [i] ne changerait jamais et que la boucle irait à jamais. < p> Et, pour ce que cela vaut la peine, lorsque vous êtes itération sur un tableau, un pour boucle est meilleur, car il vous permet de définir la variable d'itération, la condition et l'incrément Un endroit: xxx


0 commentaires

-1
votes

Si vous le mettez à l'intérieur du bloc IF, je ne vous incrémenterai que lorsque le maximum augmente, laissant la boucle tandis que la boucle pendant toujours si chaque valeur de la matrice est supérieure à celle avant.


1 commentaires

Si chaque valeur dans le tableau est supérieure à celle avant c'est littéralement la seule fois que le tandis que la boucle ne sera pas infinie.



0
votes

permet de supposer si votre matrice est composé de valeurs suivantes xxx

puis comment pouvez-vous trouver une valeur maximale à l'aide de i ++ à l'intérieur du bloc si bloque .Vous serez coincé dans une boucle infinie.


0 commentaires

1
votes

Si vous I ++ à l'intérieur du bloc IF, vous entrez à une boucle infinie: ( xxx pré>

supposons ce tableau x = nouveau int [] {9, 8} p>

        int[] x = new int[] { 5, 7, -100, 400, 8 };
        int max;

        max = x[0];
        foreach (int elem in x)
        {
            if (elem > max)
                max = elem;
        }

        Console.WriteLine("MAX=" + max);
        Console.ReadLine();


0 commentaires