你好,我正在嘗試學習C++,我想給一個程序做一點練習。但是我在循環中使用cout時遇到了問題。當循環再次運行時,爲什麼不輸出「請再試一次」?
這是我試圖從中輸出文本的循環。當用戶輸入一個無效的號碼時,應該說「對不起再試!」
while (datecheck)
{
bool check(false);
if (check)
std::cout<<"Sorry try again!"<<std::endl;
std::cin>>c;
if (c >= 1)
{
if (b == 2 && c <= 28)
datecheck = false;
if (b == 2 && a % 4 == 0 && c <= 29)
datecheck = false;
if (b == 4 || b == 6 || b == 9 || b == 11 && c <= 30)
datecheck = false;
if (c <= 31)
datecheck = false;
}
check = true;
}
當輸出和我故意讓自己在循環它不輸出任何
Year: -20
-20
-20
在循環內部,通過局部變量的初始化設置您的標誌爲false。那麼如果它是真的,你輸出。你什麼時候期望產出? – Yunnosch
移動行'布爾檢查(false);'出while循環。和'check = true;'應該是其他條件的一部分。 – MKR
等待我很笨。我猜是什麼時候重新啓動循環並將該標誌聲明爲false。我的錯。多謝你們。 – amgtree