J'ai cette boucle ici ici qui bouclée à travers l'ensemble de l'ensemble et trouve la valeur min et max. Dis que je voulais seulement boucle à travers les 20 premiers éléments comment puis-je faire ça? J'ai essayé le long des lignes de mettre une boucle imbriquée sous cela pour la boucle et de voir si je le rencontrais mais je ne peux pas. P> p>
7 Réponses :
Si vous voulez seulement boucler les 20 premiers éléments, dites-le donc dans l'en-tête de la boucle de la boucle, comme celui-ci.
@Andrewcooper Je l'ai édité il y a quelque temps, assurez-vous de recharger la question avant de vous rendre en bascule.
Vous pouvez simplement ajouter l'exigence à la condition de contrôle de la boucle:
for(int i =0; i < prices.length && i < 20; i++)
Merci! Le problème que j'avais eu, j'ai pensé à User2033853 mais cela n'a pas bouché à travers ce tableau! Merci pour ton aide!
Changez votre boucle à quelque chose comme ceci:
for(int i =0; i < (prices.length < 20 ? prices.length : 20); i++)
{
if(prices[i]>largest)
{
largest = prices[i];
}
else if(prices[i]<smallest)
{
smallest= prices[i];
}
}
for(int i =0; i < 20 && i < prices.length; i++) This will loop through 20 times, i.e. first twenty elements of the array.
Et que dire quand il y a moins de 20 éléments dans prix code>?
@nkr j'ai édité la réponse pour vérifier également la longueur de la matrice.
remplacer prix.length code> avec math.min (20, prix.length) code>, qui est la longueur de la matrice ou 20, selon la plus petite: P >
pour (int i = 0; i
5 réponses et ils ont tous une double comparaison dans la boucle?
Pas étonnant que les programmes Java fonctionnent si lentement ... p>
La bonne façon de faire une telle boucle est la suivante: P >
largest = prices[0]; smallest = prices[0]; for(int i = 1, len = Math.min(prices.length, 20); i < len; i++)
Avez-vous vu ma réponse avant de poster le vôtre? J'ai fait exactement ce que tu as fait.
@foampile: Oui, mais vous appelez également min dans la boucle, à la place avant la boucle
Je pense que l'optimiseur Java prendra soin des évaluations redondantes
Ici, je n'étais pas sûr à 100% alors j'ai posé la question suivante:
Non seulement le compilateur aura probablement la constante, mais également tout programme écrit par un novice qui poserait cette question est susceptible d'avoir des inefficiences beaucoup plus grandes que celles-ci. Les encourager à penser à de telles minuscules microoptimisations ne va pas les aider du tout.
La valeur maximale est correcte pour obtenir un minimum est simple max = min
puis travaillez comme
alors
Pourquoi répondez-vous au hasard une question de 3 ans?
Changer la condition en
iPas d'infraction, mais peut-être qu'il est préférable d'abord de lire la littérature sur les bases de la langue?
La plupart des manuels d'introduction ne montrent pas que vous pouvez mettre une expression booléenne dans la clause de boucle. Soyez gentil et aide à opp shirt