Мне трудно понять, что это! в этом цикле while. Я знаю, что это инвертирует логическое значение, но как это приводит к выходу из цикла? Если оно ложно, то оно превращает его в истинное, а если оно истинно, то оно превращает его в ложное?
String userChoice;
do
{
userChoice = select.promptChoice();
} while ( !select.isValidChoice(action ) );
while
подразумевает запрос логического значения,while
будет продолжаться только до тех пор, пока это значение равноtrue
. 25.05.2012false
, чтобыwhile
могло продолжаться до тех пор, пока метод не вернетtrue
(!true
==false
, поэтомуwhile
завершится). 25.05.2012true
будет возвращено из isValidChoice, оно будет инвертировано и станетfalse
, и цикл ВЫХОДИТ. Он никогда не завершится, если isValidChoice всегда возвращаетfalse
, потому что!false
равноtrue
. 25.05.2012