Создание цикла подтверждения - PullRequest
0 голосов
/ 01 октября 2018

Итак, я собираюсь сделать небольшое текстовое приключение на Java.Я новичок, и я хочу, чтобы пользователь выбрал свое имя, пол и т. Д., А затем для каждого бита попросил подтвердить, а затем, как только он подтвердил все свои данные, попросить еще раз убедиться.

Я не очень хорошо осведомлен о циклах или подобных вещах, поэтому, если бы кто-то мог оставить мини-урок и предложение о том, как это сделать, я был бы очень признателен.Спасибо!

Это исключительно для развлечения, и я приветствую любую конструктивную критику, которая сделает это более эффективным.Пожалуйста, не против беспорядка местоимений.

import java.util.*;
public class Emu {
    public static void main(String[] args) {
    Scanner menu = new Scanner(System.in);

    System.out.println("What is your hero's name?");                                 
    String name = menu.nextLine();
    System.out.println("So their name is " + name + "? (Y/N)");
    char cc1 = menu.next().charAt(0);
    //If yes, continues, if not, loops back to the question where the name is set
    System.out.println();

    System.out.println("Okay, is " + name + " a male or female? (M/F)");
    char gender = menu.next().charAt(0);
    String genPro, genPos, genRef, genChild, genAdult;
    switch (gender) {
        case 'M':
        genPro = "He";
        genPos = "His";
        genRef = "Him";
        genChild = "boy";
        genAdult = "guy";
        break;
        case 'F':
        genPro = "She";
        genPos = "Hers";
        genRef = "Her";
        genChild = "girl";
        genAdult = "woman";
        break;
        default:
        genPro = "It";
        genPos = "It";
        genRef = "It";
        genChild = "It";
        genAdult = "It";
        break;
    }
    System.out.println("Okay! So " + name + " is a " + genChild + "? (Y/N)");
    char cc2 = menu.next().charAt(0);
    //If yes, continues, if not, loops back to the question where the gender is set

    System.out.println("So " + name + " is a " + genChild + "? (Y/N)");
    char cc3 = menu.next().charAt(0);
    //If yes, continues, if not, loops back to the question where the name is set

    System.out.println(name + " was born a healthy young " + genChild + ", in the city of PLACEHOLDER");

}

}

1 Ответ

0 голосов
/ 01 октября 2018

A цикл do-while - это обычно используемая конструкция цикла, когда безоговорочно выполняется что-то один раз и, возможно, приходится возвращаться назад.

В зависимости от того, как вы хотите обрабатывать недопустимые входы (т.е.Y или N), вам может понадобиться две петли do-while.В приведенном ниже примере он будет продолжать запрашивать «Так их имя ...», пока не будет введено Y или N, и будет запрашивать имя снова, только если введено N.

char confirmation;
String name;
do
{
    System.out.println("What is your hero's name?");
    name = menu.nextLine();
    do {
        System.out.println("So their name is " + name + "? (Y/N)");
        confirmation = menu.nextLine().charAt(0);
    } while (confirmation != 'N' && confirmation != 'Y');
}
while (confirmation == 'N');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...