布林值用作迴圈條件時的幾點思考
阿新 • • 發佈:2018-12-13
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才執行;