簡體   English   中英

C ++無限循環

[英]C++ infinite loop

我正在嘗試編寫一個循環,該循環將重復進行,直到用戶輸入正確的選項之一(1或0)為止。 由於某種原因,當我編寫如下所示的循環時,它將創建一個無限循環。

我打算讓循環僅在控制不為0或不為1時執行,但由於某種原因,它將始終執行並變成無限循環。

cout<<"Please enter 1 for another customer or 0 to quit : ";
cin>>control;

  while ((control != 0 )|| (control != 1))
    { 
      cout<<"Invalid Entry! Please enter a 1 to enter another customer or 0 to quit: ";
      cin>>control;
    }

我將其更改為控件小於0或大於1的值,這可以正常工作,但我對另一個循環為何不起作用感到困惑。

您必須使用&&運算符。

while ((control != 0 ) && (control != 1))
(control != 0) || (control != 1)

等價於

!(control == 0 && control == 1)

但,

(control == 0 && control == 1) 

始終為假(沒有這樣的數字)。

因此,整個表達式將始終獲得真正的價值。

突破的唯一途徑

while ((control != 0 )|| (control != 1))

!(control != 0) && !(control != 1)

相當於

control == 0 && control == 1

這對於所有整數都是不可能的。

暫無
暫無

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

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