2013-04-09 7 views
0
do { 
     System.out.println("Please enter the cost: "); 
     Cost1 = input.nextDouble(); 
    } while (Cost1 <= 100000 || Cost1 >= 900000); 

C'est mon code. Si j'entre 100001, cela saute la boucle, mais si je mets 100000, ce n'est pas le cas. Pourquoi est-ce?java <= ne fonctionne pas correctement

+4

Parce que 100000 est <= 100000? –

+1

Parce que vous vous trompez. Il sort de la boucle lorsque la valeur est comprise entre 100000 et 900000. Il reste dans la boucle lorsque la valeur est inférieure à 100001 ou supérieure à 899999. 'Boucle while: Cost1 est inférieur ou égal à 100000 ou Cost1 est supérieur ou égal à 900000 ' –

Répondre

1

état incorrect (basé sur ce que vous attendez de lui)

Cost1 <= 100000 || Cost1 >= 900000 

moyens

While Cost1 <= 100k OR Cost1 >=900K 

Alors, quand vous mettez 100001 Son ni moins égal à 100k ni supérieur ou égal à 900K

+0

J'ai eu les signes dans le mauvais sens! Corrigé maintenant, merci. – Chara

0

Si vous entrez 100 001 lorsque Cost1 n'est pas inférieur à 100 000 et n'est pas supérieur à 9 00 000 alors vous sortez de la déclaration. Néanmoins, si vous entrez 100 000, la première condition de votre temps est terminée, de sorte que l'instruction est réexécutée une autre fois (évaluation paresseuse).

0

Cela fonctionne comme vous l'avez demandé (ou au moins écrire).

La boucle sera ignorée si Cost1 est plus de 100000 et moins de 900000, comme vous l'avez indiqué.

Donc, pour 100000 ne saute pas (car il est égal 100000) et pour 100001 il fait (parce qu'il se situe entre 100000 et 900000)

0

selon l'état où il sera évidemment hors de la boucle parce que 100001> 100000 Je pense que vous voulez quelque chose d'autre et par erreur vous avez mis la mauvaise condition.post votre requête ici

0

Votre boucle s'exécute seulement quand une valeur n'est PAS entre 100000 et 900000, étant donné la logique ou établie.

Cette logique semble hors du cas normal (alors qu'il pourrait être destiné), je suppose que vous cherchiez à itérer seulement entre ces valeurs, ce qui pourrait être résolu en utilisant et logique.

do { 
    System.out.println("Please enter the cost: "); 
    Cost1 = input.nextDouble(); 
} while (Cost1 >= 100000 && Cost1 <= 900000); 
Questions connexes