Do-while l oop выполняется, даже если условие ложно - PullRequest
0 голосов
/ 14 июля 2020

Мне нужно реализовать оба метода в этом коде, используя do-while l oop в основном методе.

Каждый раз, когда я использую предлагаемые Java исправления, такие как переименование inputChar, инициализация переменной, или объявив это вне цикла; l oop все еще выполняется, даже если я ввожу "E". Любая помощь будет принята с благодарностью.

import java.util.Scanner;
public class Practice {
    
    static Scanner scanner = new Scanner(System.in);
    
    public static void main(String[] args) {
        
        
        do {
            char inputChar = getInputCharFromUser();
            String value = getValueFromChar(inputChar);
            System.out.println(value);

        } while (inputChar != ('E'));
        scanner.close();

    }
    public static char getInputCharFromUser() {
        final String CHAR_PROMPT = "Enter input char: ";
        System.out.println(CHAR_PROMPT);
        char inputChar = scanner.nextLine().charAt(0);
        return inputChar;

    }
    public static String getValueFromChar(char inputChar) {

        switch (inputChar)

        {

        case 'P':
            return "Player";
        case 'p':
            return "Player";
        case 'X':
            return "Wall";
        case 'x':
            return "Wall";
        case ' ':
            return "Empty";
        default:
            return "Invalid";

        }
    }
}

1 Ответ

0 голосов
/ 14 июля 2020

Попробуйте использовать while-l oop вместо do-while-l oop, вы все равно можете добавить условие if или все остальное в while-l oop, так что это не имеет значения.

...