簡體   English   中英

如何向此 while 循環添加條件?

[英]How can I add a condition to this while loop?

我相對熟悉 c++ 和一般情況下的編程。 我正在努力向我的 while 循環添加一個條件,該循環已經在執行一些數據驗證。

    int again;
cout << "Do you want to search again?\n[1] Yes\n[2] No\n\n Please choose your option:  ";
cin >> again;
while (!(cin >> again)) {
  cout << "Please enter a valid number: ";
  cin.clear(); //clears the input
  cin.ignore(1000, '\n');// clears 1000 characters of input
}

在驗證工作的同時,正如我上面所說,我正在努力獲得一個條件,要求用戶在一個 while 循環中輸入 1 或 2 作為選項 state。

謝謝你。

有些人可能會發現在主體內包含條件的循環更具可讀性。

int again = 0;
for(;;)
{ 
    std::cout << "Do you want to search again?\n"
                 "[1] Yes\n"
                 "[2] No\n\n"
                 "Please choose your option:  ";
    std::cin >> again;
    if ( std::cin.eof() )
    {
         std::cerr << "Unexpected end of input.\n";
         again = 2;  // No, you probably don't want to search again.
         break;
    }
    if ( !std::cin )
    {
         std::cout << "Please enter a valid number.\n";
         std::cin.clear();
         std::cin.ignore(1000, '\n');
         continue;
    }
    if ( again == 1  ||  again == 2)
    {
         break;
    }
    std::cout << "Please enter 1 or 2.\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM