2017-01-31 2 views
0

Тип тупика. Мне нужно следующее: чтобы зациклиться от точки проверки (проверки на запятую), чтобы пользователь мог вводить текст снова и снова, пока не будет нажата клавиша «q» для выхода. Я попытался положить туда два петли, но я не знаю, как повторять одно и то же снова и снова. Мне нужен синтаксический анализ, чтобы остаться там для задания.Цикл, который позволяет пользователю вводить строки до «q» для выхода

Спасибо.

p = 1; 
    while(!userName.contains(",")){ 
    System.out.println("Error: No comma in string "); 
    System.out.println("Enter input string: "); 
    userName = scnr.nextLine(); 
    p++;  

} 

    userName = userName.replace(",", ""); 
    inSS = new Scanner(userName); 
    firstName = inSS.next(); 
    lastName = inSS.next(); 


    System.out.println("First word: " +firstName); 
    System.out.println("Second word: " +lastName); 
    p++; 


    }   
}  

ответ

1

Вы рассматривали использование if заявления и break? Оператор break оставляет текущий цикл. Например, вы можете добавить

if(scnr.nextLine().equals("q")){ 
    break;} 

Это оставит цикл while, если это то, о чем вы просите.

+0

Спасибо, я рассмотрю это. В принципе, цикл while, который там должен оставаться, потому что он проверяет, вводит ли пользователь запятую или нет. Мне нужно, чтобы весь фрагмент этой программы начинался с начала, поэтому пользователь может продолжать вводить до нажатия q. – ANC2017

+0

По всей части вы имеете в виду то, что вы разместили? В этом случае инкапсулируйте кусок во второй цикл (лучше всего использовать do-while) и просто удерживайте его внутри. Затем используйте этот оператор if, который был опубликован везде, где ваш вход принят, чтобы разбить цикл. Хотя он только сломает текущий цикл, поэтому, если он находится во вложенном цикле, он не покинет весь фрагмент. Если вы хотите просто полностью завершить программу, вы можете использовать System.exit (0); –

+0

Да, что я разместил. Проверка запятой и синтаксический анализ впоследствии. – ANC2017