0
votes

Comment arrêter une boucle de temps en Java après avoir saisi une chaîne spécifique?

im essayant d'arrêter une boucle qui prend des entiers après avoir tapé dans la console "fin", mais je ne peux pas sembler trouver un moyen de le faire. XXX

Après avoir saisi la chaîne (" Fin "), il doit me montrer le total des plats et des pots et de la quantité de détergents qu'il aille, et si la quantité de détergents requise est supérieure au montant disponible, il doit me montrer combien plus de besoin. < / p>


3 commentaires

Est-ce que cela répond à votre question? Scanner ignore NextLline () après avoir utilisé Suivant () ou Nextfoo ( )?


Utilisez integer.parseint (nextline ()) au lieu de Nextint () .


Si vous souhaitez lire un mot unique, utilisez suivant () au lieu de nextline () . Si vous devez utiliser nextline () envisager d'utiliser scan.skip ("\\ r") avant de s'assurer qu'il n'y a pas de séparateurs de ligne de dérivation après avoir appelé NEXTINT () .


3 Réponses :


0
votes

Essayez ceci String assez = scan.next (); au lieu de scan.nextline ();

 Entrez la description de l'image ici


0 commentaires

0
votes

Je suggérerais d'imprimer des messages à la console pour confirmer à l'utilisateur que vous souhaitez entrer. Sinon, cela montrera simplement une fenêtre vierge. Je vous suggère également de définir une variable booléenne pour échapper à la boucle tandis que lorsque vous passez votre suffisamment à .nsext plutôt que .nntextline. De cette façon, vous redéfinissez votre booléen comme faux pour casser la boucle tandis que lorsque vous souhaitez également contrôler votre émission de programme un peu plus. Ceci compilé avec toutes les entrées de 1:

package com.climatedev.test;

import java.util.Scanner;

public class Test {


    public static void main(String[] args) {
        System.out.println("How many bottles?");
        Scanner scan = new Scanner(System.in);
        int bottles = scan.nextInt() * 750;
        int cnt = 1;
        int platesTotal;
        int potsTotal;
        int nrPlates = 0;
        int nrPots = 0;
        boolean run = true;
        while(run){
             System.out.println("How many plates?");
             int plates = scan.nextInt();
             platesTotal = plates * 5;
             if(cnt%3==0) {
                 int pots = scan.nextInt();
                  nrPots = nrPots + pots;
                  nrPlates = nrPlates + pots;
                  potsTotal = pots * 15;

              if (bottles < potsTotal + platesTotal) {
                   System.out.println("Not enough detergent, " + (potsTotal + platesTotal - bottles) + " ml. more necessary!");
                   break;
               }
              else
                  if(bottles >= potsTotal + platesTotal) {
                      System.out.println("Would you like to end the program? (Enter End)");
                      String enough = scan.next();
                  if (enough.equals("End")) {
                      if (bottles >= potsTotal + platesTotal) {
                          System.out.println("Detergent was enough!");
                          System.out.println(nrPlates + " dishes and " + nrPots + "pots were washed.");
                          System.out.printf("Leftover detergent %d ml.", bottles - potsTotal - platesTotal);
                          run = false;
                          System.out.println("Goodbye");
                          break;
                        }
                    }
                }
            }
        cnt++;
         }
    }
}


0 commentaires

0
votes

Si vous souhaitez utiliser un objet de scanner pour les chaînes et les numéros, vous devez analyser le numéro: xxx

ou vous pouvez avoir deux scanners (un pour les cordes et une autre pour les chiffres): < / p> xxx


0 commentaires