Je suis nouveau à la programmation, mais j'ai cherché ce sujet avant de demander et ne peut toujours pas comprendre ce que mon programme fait mal.
J'ai ceci: p>
int i; do { i = get_int("Enter positive integer between 1-10: \n"); } while(1>i && i<10)
5 Réponses :
Vous voulez probablement que la boucle exécute la boucle tant que l'utilisateur entrait un nombre compris entre 1 et 10. Votre état dans la boucle tandis que la boucle n'est pas correcte. Il devrait être le suivant - Toutefois, si vous souhaitez casser la boucle dès que l'utilisateur entrait n'importe quel numéro dans la plage 1 à 10 code>, alors vous devrait utiliser les éléments suivants - p>
devrait être ! (i> 1 && i <10) code>
@ Ôrel en fait, le premier est correct. Vérifier mon édition
Pour moi, vous devez demander à nouveau si le numéro n'est pas dans la plage, tandis que i code> n'est pas valide que vous restez dans la boucle
Votre état de boucle est incorrect. Vous auriez dû utiliser logique ou strong> au lieu de logique et strong>. Ceci a fonctionné pour moi. P> do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while (i<1 || i>10);
Cela aurait pu être fait avec logique et B> aussi. En outre, votre première phrase n'a pas beaucoup de sens ..
Fait un sens pour moi. Vous connaissez la différence entre et faites ... pendant que j'espère ...
Puisque vous utilisez do ... tandis que i> ... Cela signifie-t-il que la condition aurait été différente lorsque vous utilisez juste pendant () code> boucle? La raison d'utiliser le do-tout est simplement parce que je n'ai pas de valeur initiale et doit l'obtenir de l'utilisateur avant de vérifier la condition.
@Abhishek Gotcha, reformulé.Merci
maintenant c'est plus clair. Aussi, notez que logique et b> aurait également pu être utilisé à l'aide de l'opérateur non
Je ne peux pas le faire reconnaître que cela doit suivre les deux opérateurs.
Pourquoi serait-il plus applicable lorsque l'entier doit répondre aux deux critères? P>} while(i < 1 || i > 10);
Vous avez été confondu ( Syntaxe Erreur code>) à l'intérieur du texte tandis que
expression code> (2 erreurs leur, la logique n'est pas correcte et une erreur de syntnatx avec
1 ) - voir les correctifs en ligne:
int i = 0; /*its better if you initialize the i here*/
do
{
i= get_int ("Enter positive integer between 1-10: \n");
}
while((i > 1) && (i < 10));
Je veux demander à l'utilisateur un entier positif entre un et dix. p>
Je pense que vous voulez un entier dans la gamme avec 1 et 10 Inclusive. P>
Quand comment va chercher une telle condition d'un entier positif valide? P>
Il aura lieu ce qui suit manière p>
xxx pré> de sorte que la boucle doit poursuivre ses itérations pendant que cette condition n'est pas vraie. Donc, dans la condition de la boucle, vous devriez écrire une négation de la condition ci-dessus p>
xxx pré> si pour retirer les parenthèses, la condition ressemblera à p>
xxx PRE> blockQuote>
1> i code> ->
i> 1 code> .. mais vous voulez toute cette condition annulée. Quelque chose comme
tandis que (i <1 || i> 10) code>
ça l'a fait, merci. "||" signifie "ou", non? Pourquoi serait-il plus applicable lorsque l'entier doit répondre aux deux critères?
@merzy Vous avez besoin ou de sorte que si l'état est satisfait (soit moins de 0 ou supérieur à 10, vous voulez faire boucle), la boucle continue de fonctionner. Si vous êtes à l'aise d'utiliser et que vous auriez pu utiliser cela aussi à l'aide de l'opérateur de négation avec elle. Vérifiez ma réponse ci-dessous.
Merzy Edge Case Question: Avec l'invite
"Entrez un entier positif compris entre 1-10: \ N" code>, souhaitez-vous une entrée de
"1" code> pour boucler ou quitter le boucle?
@merzy, l'entier n'a pas à atteindre les deux critères présentés par Eugene. Il doit rencontrer aucun i> des critères pour quitter la boucle. Répondre au moins un des critères devrait conserver la boucle.