Я работаю с довольно простой задачей программирования в Java. Нам предлагается создать чат-робот, где робот должен случайно ответить из набора заданных строк, пока пользователь не напишет «Bye!», Где робот просто ответит «Bye!». и завершить программу. Я написал следующий код:Java-while цикл не работает как ожидалось
import java.util.Scanner;
import java.util.Random;
public class Robot {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Random random = new Random();
String[] answer = new String[6];
answer[0] = "blabla1";
answer[1] = "blabla2";
answer[2] = "blabla3";
answer[3] = "blabla4";
answer[4] = "blabla5";
answer[5] = "blabla6";
boolean keepGoing = true;
System.out.println("Hello, how can I help you?");
while (keepGoing) {
String input = in.next();
int output = random.nextInt(6);
System.out.println(answer[output]);
if (input.equals("Bye!")){
keepGoing = false;
System.out.println("Bye!");
}
}
}
У меня есть две проблемы с программой:
- Время от времени, казалось бы, случайным образом, программа будет ответить с несколькими строками.
- При написании «Bye!» Программа бросает в другую строку перед тем, как писать «Bye!». Я знаю, что это может быть разрешено путем добавления «break;», но я подумал бы об этой плохой практике, поскольку я уже использую логическое значение. (Я бы продолжал использовать его.)
Я понятия не имею, почему возникают эти ошибки.
ли, что код даже компилирует ? –
'continue' является зарезервированным словом в java и не должен использоваться как переменная. Кроме того, вы используете переменную 'fortsett' в своем цикле, и она даже не определена. Довольно уверен, что код даже не будет компилироваться как есть. – jgm
'continue' должен быть' fortsett' –