2016-08-22 3 views
-4

Как бы вы сделали викторину java, где, если вы ответили неправильно, тогда не появится больше вопросов, напримерКак вы делаете викторину java?

Вы хотите меня съесть?

Типы лиц в Да, тогда в командной строке не отображается следующий вопрос, но если человек сказал «нет», тогда появился следующий вопрос? Я выяснил, как задавать вопросы с аргументами, но когда набирается неправильный ответ, он показывает следующий вопрос.

Так как я сделал бы это как

Вы хотите меня съесть?

лицо: Да

Пожалуйста, закройте это окно или нажмите любую клавишу.

Но если человек сказал Нет, это было бы сказать - Можете ли вы летать, то задать этот вопрос и т.д. Это код, который я до сих пор,

public static void main(String[] args) { 
String fail = "Thank you for your time, please close this window."; 
Scanner input = new Scanner(System.in); 
System.out.println("You have entered the fast track to becoming a MI6 Intelligence Officer."); 
System.out.println(""); 
System.out.println("Do you wish to continue?"); 
System.out.println("(All questions are to be answered with 'Yes' or 'No')"); 

String a = input.next(); 

if(a.equalsIgnoreCase("yes")){ 
    System.out.println("true"); 
} 
else if(a.equalsIgnoreCase("no")){ 
    System.out.println(fail); 
} 
else{ 
    System.out.println("ERROR - You typed " + a + " this is incorrect, please type 'Yes' or 'No'"); 
} 
System.out.println("Do you want to protect this country?"); 
String e = input.next(); 

if(e.equalsIgnoreCase("yes")){ 
    System.out.println("true"); 
} 
else if(e.equalsIgnoreCase("no")){ 
    System.out.println(fail); 

} 
else{ 
    System.out.println("ERROR - You typed " + e + " this is incorrect, please type 'Yes' or 'No'"); 
} 
} 

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

+0

И проблема в этом? – shmosel

+4

Ну, одна проблема, похоже, что он не прочитал [ask]. – bradimus

+1

Это довольно простые логические процессы. Мое предложение состоит в том, чтобы практиковать язык и укреплять доверие, чтобы взять удар по проектам, которые появляются в вашей голове. Как только вы столкнетесь с проблемой с вашим кодом, мы с удовольствием рассмотрим ваши проблемы. Если вы * * нанесли удар по коду, вам нужно показать его нам - мы не против читателей. –

ответ

1

Вы можете использовать базовый цикл (while, do-while, for) и поместить оператор break всякий раз, когда хотите немедленно выйти из цикла. Оператор с неблокированным отключением выйдет из самого внутреннего цикла. В качестве примера:

boolean complete = false; 
do{ 
    if(a.equalsIgnoreCase("yes")){ 
     System.out.println("true"); 
    } 
    else if(a.equalsIgnoreCase("no")){ 
     System.out.println(fail); 
     break; 
    } 
    //Additional questions follow similar format 
}while(!complete) 

Преимущество здесь в том, что вы не выходите из программы сразу, что позволяет продолжить работу с программой вне цикла. Например, вы можете отслеживать логическую переменную и использовать ее за пределами цикла для написания настроенного сообщения «Прощай» в зависимости от того, правильно ли пользователь прошел полную викторину или не прошел опрос (например, другой, если/else, основанный на логическом значении после цикла, позволит вам перемещать каждую строку «System.out.println (fail)», в одну строку в конце).

+0

Возможно также иметь 'while (true)', поскольку вы фактически не используете 'complete' в другом месте и' break' из него. – ChiefTwoPencils

+0

@ChiefTwoPencils Пример «полного» - это то, на что OP может опираться, если они хотят (теоретически). Спасибо за инициализацию. –

+0

Я подумал об этом сегодня, и я не думаю, что это был бы лучший вариант, поскольку я просто хотел что-то простое, и я полностью передумал, думая, что я в основном хотел что-то выйти из него, поэтому я использовал System.exit (0) – Stamp