2015-07-19 6 views
0

Я делаю простую текстовую игру java в eclipse luna. Scanner.next() не работает. Когда я запустил его, после того, как я попрошу ввести пользователя, отобразится ошибка (java.util.NoSuchElementException). Я только что сделал что-то действительно немое?Устранение трудности не работает

while(whle) { 
     System.out.print("Where do you want to go? Enter gym, store, or mountain. "); 
     loc = goTo.next(); 
     loc = loc.toLowerCase(); 
     if(loc.equals("gym") || loc.equals("store") || loc.equals("mountain")) whle = false; 
     else { 
      System.out.println("Please enter an option. "); 
      System.out.println(); 
     } 
    } 

Все определено, и никаких ошибок не появляется в реальной программе, только когда я запускаю ее.

+0

Используйте другой «Сканер # следующий», чтобы использовать символ конца строки. –

+0

@Luiggi Mendozaif вы имеете в виду 'loc = goTo.next(); loc = goTo.next() 'Я попробовал, и то же самое выскочил –

+0

Я имею в виду' loc = goTo.next(); goTo.next(); ' –

ответ

1

Убедитесь, что ваш сканер правильно инициализирована как этот

Scanner loc = new Scanner(System.in); //very important 

И вы импортировали этот класс

import java.util.Scanner; //in the begining of the source code 

он должен работать (кроме того, что я думаю, что его проблемы с IDE, java version)

Если это не помогает, я запускал его с помощью этой программы самостоятельно (с помощью boolean whle, инициализированного, main метода и такие), и это создает то, что я считаю, что вы хотите.

while(whle) { 
    System.out.print("Where do you want to go? Enter gym, store, or mountain. "); 
    String locstring= loc.next(); 
    if(locstring.equalsIgnoreCase("gym") || locstring.equalsIgnoreCase("store") || locstring.equalsIgnoreCase("mountain")){ whle = false;} 
    else { 
     System.out.println("Please enter an option. "); 
     System.out.println(); 
    } 
} 
+0

Я не вижу улучшения кода, кроме окружения 'whle = false;' с фигурными скобками. –

+0

Я не могу сказать, что «goTo» - это сканер или нет, поэтому я даю ему правильный пример сканера. – Mazino

+1

Опять же, я не вижу улучшения кода. Если основная цель вашего ответа заключается в том, как инициализировать «Сканер loc», то сосредоточьтесь на этом, а не на том, что * измените свой код на '<тот же код, отправленный OP>' *, когда нечего менять. –

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