2017-08-30 8 views
-2

J'ai essayé de comprendre comment permettre à un utilisateur d'entrer deux files d'attente séparées. Plus spécifiquement, j'ai essayé (sans succès) d'avoir un événement clé qui mettrait fin à l'entrée d'une file d'attente et me permettrait de commencer à entrer les entrées de la file d'attente suivante. Je vous remercie. Heureux de dire que c'est mon premier post!Java: Comment avoir une entrée standard prendre deux files d'attente?

Scanner scanner = new Scanner (System.in); 
while (!StdIn.isEmpty()) 
    { 

      double one = StdIn.readDouble(); 
      a.enqueue(one); 

     if (scanner.nextInt() == 0) 
    { 

       double two = StdIn.readDouble(); 
       b.enqueue(two); 

      } 

(StdIn est pas dans la bibliothèque standard Java)

+0

Qu'est-ce que 'StdIn'? Quel "événement clé" voulez-vous? – Andreas

+0

Quels sont 'StdIn',' a' et 'b'? – nullpointer

+0

La classe StdIn fournit des méthodes statiques pour lire des chaînes et des nombres à partir d'une entrée standard. a et b sont des files d'attente déjà déclarées. en ce qui concerne l'événement clé, j'ai juste besoin de quelque chose qui signalerait la fin de la file d'attente – Hamza

Répondre

0

En supposant que le "événement clé" est une valeur nulle, vous feriez comme ceci:

Scanner scanner = new Scanner (System.in); 
Queue<Double> a = new ArrayDeque<>(); 
Queue<Double> b = new ArrayDeque<>(); 
while (scanner.hasNextDouble()) { 
    double value = scanner.nextDouble(); 
    if (value == 0) 
     break; 
    a.add(value); 
} 
while (scanner.hasNextDouble()) { 
    b.add(scanner.nextDouble()); 
} 

Vous pouvez appliquer le contrôle d'événement clé à la deuxième boucle aussi, si vous voulez.

Notez que toute entrée autre que double arrêtera le traitement d'entrée pour les deux files d'attente et continuera avec le code suivant la seconde boucle while.

+0

Ah cela est utile .. une question connexe: si je veux remplir les entrées de file d'attente et faire manipuler la file par les objets du programme, Je le fais? J'ai essayé dans la méthode principale mais j'ai obtenu l'erreur "variable non-statique cela ne peut pas être référencé à partir d'un contexte statique" Merci! – Hamza

+0

@Hamza Ne pas voir votre code, je ne peux pas dire, d'ailleurs c'est une question différente. Créez une nouvelle question et incluez le code approprié. Vous souhaiterez peut-être lire ceci en premier: [Comment créer un exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve) – Andreas