2017-02-08 24 views
0

Я не совсем уверен, что происходит. Он прошел долгий путь от того места, где он был, но он все еще не функционирует. Суть этого упражнения заключается в том, чтобы пользователь угадал «ваше любимое состояние» из списка предопределенных состояний. Пользователь получает только три догадки, а затем программа останавливается.Догадка состояния в Java - массивLists и ввод пользователя

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

В чем проблема? –

+0

Вам действительно нужно научиться Java с нуля! Почему вы пишете метод вне класса и почему нет основного метода? – minigeek

ответ

0

Я мог бы легко решить это для вас, но я думаю, было бы хорошо научить вас, как ловить рыбу ... как говорится.

Прервать проблему.

  1. Выполнять номера пользователей. Пользовательский ввод Google java, подсказка: используйте System.in , например. How can I get the user input in Java?

  2. печати, что пользователь вошел обратно на экран, System.out

  3. После того, как у вас есть номера, например, 1 2 3 в качестве входа, вы можете разбить эти числа на массив, например. См. Convert a string of numbers into an array

  4. Завершите массив, добавив все числа и используя подсчет или длину массива, чтобы отслеживать разделитель. например (1 + 2 + 3 + 4 + 7 + 8)/6 = средний

Если вы разместите код, чтобы продемонстрировать попытку, я был бы рад помочь дальше :)

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

Вы можете улучшить его, не сохраняя числа, и просто работать с суммой и количеством введенных чисел во время записи каждого входа, но я создал его как список, потому что ваш вопрос специально попросил «сохранить список». –

 Смежные вопросы

  • Нет связанных вопросов^_^