System.out.println(); не будет записываться в моем операторе if со стадиями

#java #if-statement #println #adventure

#java #if-statement #println #Приключения

Вопрос:

Я пытаюсь создать текстовую приключенческую историю с вариантами и различными сценариями. Когда я использую if(stage == *) его, он не активирует сообщения sysout, только в моих операторах switch или добавляет его после ввода.

 private static int stage = 0;
Scanner in = new Scanner(System.in);
String opt = in.next().toLowerCase();

if(stage == 0) {
    System.out.println("Do you go left or right?");
    switch(opt) {
        case "right":
            System.out.println("Swamp, you go through the thicket and move forward.");
            stage = 10;
            break;
        case "left":
            System.out.println("You find an open field with flowers all over.");
            stage  ;
            break;
    }
}
 

Комментарии:

1. stage ==* не является оператором

2. Вы хотите сказать, что «Вы идете влево или вправо?» распечатка не отображается, но «Болото …» или «Вы находите …» есть?

3. Какая функция это внутри? Я нигде не вижу «main».

4. Точно, @JohnKugelman , мне нужно, чтобы это тоже было напечатано, или я ошибаюсь?

5. Привет, Эрик, пожалуйста, не добавляйте решение к своему вопросу и / или не редактируйте «решаемая» в заголовок. Вместо этого отметьте ответ, чтобы отметить ваш вопрос как решенный. Если ни один из ответов не подходит вам, и вы решили его самостоятельно, предоставьте свой собственный ответ (в форме реального ответа) и отметьте его.

Ответ №1:

Вы читаете из ввода, прежде чем задать вопрос, поэтому ваш вопрос печатается после ввода.

String opt = in.next().toLowerCase(); следует продолжить, System.out.println("Do you go left or right?"); потому что чтение из ввода блокируется

Комментарии:

1. @EricLjungkrantz Если это отвечает на ваш вопрос, установите флажок, чтобы пометить его как принятый.