2017-02-08 1 views
0

Je ne suis pas vraiment sûr de ce qui se passe. C'est loin d'être le cas, mais ça ne fonctionne toujours pas. Le but de cet exercice est de faire deviner "votre état préféré" par un utilisateur à partir d'une liste d'états prédéterminés. L'utilisateur n'obtient que trois suppositions, puis le programme s'arrête.Deviner l'état en Java - arrayLists et l'entrée de l'utilisateur

import java.io.*; 
import java.util.*; 

    class stateHelper { 
    public static void getUserInput() { 
     ArrayList<String> stateList = new ArrayList<String>(); 
     stateList.add("Georgia"); 
     stateList.add("Hawaii"); 
     stateList.add("Arizona"); 
     stateList.add("New York"); 
     stateList.add("Montana"); 

     Scanner scan = new Scanner(System.in); 
     String userInput = scan.next(); 
     System.out.println("Guess my favorite state: "); 

     //loop three times 
     int num = stateList.size(); 
     for (int i = 0; i < num ; i++) { 
      // if state is in line, print you guessed it 
      String st = stateList.get(i); 
      System.out.println(st); 
      /*if (userInput.equals(stateList.get(i))) { 
       System.out.println("It is a hit."); 
       }    
      } 
      if (!userInput.equals(stateList.get(i))) { 
       System.out.println("It is a miss.");  
       } */ 
     } 
    /* 
    System.out.println(stateList.get(0)+ 
    stateList.get(1)+stateList.get(2)+stateList.get(3)+ 
    stateList.get(4)); 
    */ 

     } 
    } 
+0

Quel est exactement le problème? –

+0

Vous avez vraiment besoin d'apprendre java à partir de zéro! Pourquoi avez-vous écrit la méthode en dehors de la classe et pourquoi il n'y a pas de méthode principale! – minigeek

Répondre

0

Je pourrais facilement résoudre cela pour vous, mais je pense qu'il serait bon de vous apprendre à pêcher ... comme on dit.

Résolvez le problème.

  1. Prendre les numéros de l'utilisateur. Entrée utilisateur Google java, indice: utilisez System.in par exemple. How can I get the user input in Java?

  2. Imprimer ce que l'utilisateur est entré à l'écran, System.out

  3. Une fois que vous avez les numéros par exemple 1 2 3 en tant qu'entrée, vous pouvez diviser ces nombres en un tableau, par ex. Voir Convert a string of numbers into an array

  4. Boucle le tableau, en ajoutant tous les nombres et en utilisant un nombre ou une longueur de tableau pour garder une trace du diviseur. par exemple. (1 + 2 + 3 + 4 + 7 + 8)/6 = moyenne

Si vous publiez un code pour démontrer une tentative, je serais heureux d'aider davantage :)

0
import java.util.Iterator; 
import java.util.LinkedList; 
import java.util.Scanner; 


public class Averager { 
    public static void main(String[] args) { 
     LinkedList<Integer> numbers = new LinkedList<Integer>(); 

     System.out.println("Enter a number to add to the list, or QUIT to stop:"); 
     Scanner scanner = new Scanner(System.in); 
     String userInput = scanner.next(); 
     while (!userInput.equalsIgnoreCase("QUIT")) { 
      try { 
       numbers.add(Integer.parseInt(userInput)); 
      } catch (NumberFormatException e) { 
       // IGNORE 
      } 
      userInput = scanner.next(); 
     } 
     scanner.close(); 

     System.out.println("The average of these numbers is: " + average(numbers)); 

    } 

    private static double average(LinkedList<Integer> numbers) { 

     Integer top = 0, bottom = 0; 

     for (Iterator<Integer> iterator = numbers.iterator(); iterator.hasNext();) { 
      top += (Integer) iterator.next(); // Sum the numbers 
      bottom++; // count how many there are 
     } 

     if (bottom > 0) { 
      return top/bottom; // calculate the average 
     } 

     return 0; 
    } 

} 
+0

Vous pouvez l'améliorer en ne stockant pas les nombres, et en travaillant simplement sur la somme et le nombre de chiffres saisis lors de l'enregistrement de chaque entrée, mais je l'ai créé en Liste parce que votre question demandait spécifiquement "enregistrer dans une liste". –