1. 程式人生 > >布林值用作迴圈條件時的幾點思考

布林值用作迴圈條件時的幾點思考

        boolean cn;         do {             cn = false;             Scanner input = new Scanner(System.in);             int no = input.nextInt();             if(no==1) {                 System.out.println("");             }else if(no==2) {                 System.out.println("");             }else if(no==0) {                 System.out.println("");             }else {                 System.out.println("輸入錯誤,請重新輸入數字:");                 cn = true;             }         }while(cn==true);

以do-while迴圈為例;

容易陷入一個思維誤區:即想當然cn是真時時就執行迴圈體;

其實我們忽略了此時的迴圈條件是cn為假時,才執行迴圈體;

為避免這種誤區,我把真作為1理解假作為0理解;將布林型別cn做一個數值型變數理解;上述程式碼先執行cn=0;

如果輸入錯誤,則cn=1,此時迴圈條件cn=1;執行;迴圈條件會隨cn的值變化;以實現

對執行迴圈體的不同要求;

將==true去掉,程式碼執行結果一樣嗎?答案是一樣的,我理解只是寫法不一樣,當迴圈條件為布林型別時,在迴圈條件中

預設為真即1才執行;