以下代碼聲稱使用具有標誌的do循環重複輸入,直到獲得有效的int。關於此Java代碼段的問題
do
{
try
{
// attempt to convert the String to an int
n = Integer.parseInt(s);
goodInput = true;
}
catch (NumberFormatException nfe)
{
s = JOptionPane.showInputDialog(null,
s + " is not an integer. Enter an integer");
}
} while (!goodInput);
我對這裏的邏輯有點困惑。如果剛剛的Integer.parseInt正常工作,或沒有異常的現象發生,那麼「goodInput」被指定爲「true」在
goodInput = true;
線接!goodInput將被評估爲假,因此而循環將繼續。這在我看來與設計邏輯矛盾,即在執行正確的解析操作後while循環應該停止。我上面的分析有什麼問題。