Java: как спросить пользователя, хочет ли он / она играть снова - PullRequest
0 голосов
/ 18 октября 2019

Как вы спрашиваете пользователя, хочет ли он / она играть снова? Have Я должен попросить пользователя ввести символ для этого - 'y' или 'n' (убедившись, что это не чувствительно к регистру)

, если пользователь вводит 'y', тогда я хочу, чтобы он зацикливалсявопрос «Сколько раундов вы хотели бы сыграть», а затем «[блок кода]».

    //asks user for their name
    System.out.println("\nWhat is your name?");
    name = in.nextLine();

    //asks user the number of rounds they want to play
    System.out.println("How many rounds would you like to play?");
    numRound = in.nextInt();

    char cont = 'y';

    do {
          [block of code ]
        }

    } while (roundnum <= numRound);     
    System.out.println("Would you like to play again? (y/n)");
    cont = in.next().charAt(0);
    while (cont == 'y');
    }

Ответы [ 2 ]

0 голосов
/ 18 октября 2019
play()

while(1) {
    System.out.println("Wanna play again? (y/N): ")
    choice = in.nextChar();

switch(choice) {
    case 'y':
    case 'Y':
        play();
        break;
    case 'n':
    case 'N:
        System.exit(0);
    default:
        System.out.println("Try again");
}

}


void play() {
    //asks user the number of rounds they want to play
    System.out.println("How many rounds would you like to play?");
    numRound = in.nextInt();

    char cont = 'y';

    do {
          [block of code ]
        }

    } while (roundnum <= numRound);     
}
0 голосов
/ 18 октября 2019

Вы на правильном пути, используя цикл while, чтобы проверить, хочет ли пользователь снова играть, но вы запускаете цикл не в том месте. Ваш цикл while должен начаться непосредственно перед тем, как вы захотите повторить какие-либо действия. Таким образом, псевдокод будет примерно равен:

while (cont == 'y'){
    //Enter game code here
    System.out.println("Would you like to play again? (y/n)");
    cont = in.next().charAt(0);
}

Кроме того, никогда не заканчивают условное выражение точкой с запятой. Он не скомпилируется.

...