在do{ }while( ); 陳述句中,我之前的理解是:先執行一次do{ },然后判斷while( )中的內容,一般里面都是字串或者數值作比較嘛,所以理解是:如果判斷的這個東西,在這個范圍中(等于這個條件),則跳出回圈,不執行do{}中的內容;如果這個東西不在這個范圍內(不等于這個條件),則執行do{}中的陳述句,執行完結束、跳出,不用認真讀這個了,一看就是錯的:D ,基礎知識時就被自己誤導后就是這個理解結果,kk
正確的理解應該是:
1、首先要認識到這是一個回圈陳述句
2、先執行一次do{ },然后判斷while( );中的內容是不是要繼續回圈do{ }中的內容,這種行為說明他是一種 <表達式的值是在每次回圈結束時檢查>,就是一種“先上車后檢票”行為,我管你上火車的時候買不買票,沒人守著,等你上完車了,我就來檢票了,有票就繼續坐著,沒票就馬上把你趕下車,終止這次旅行唄
3、所以就是:先執行了一次do{ }后,然后進行判斷, 當while();中的判斷為true時,繼續進行do{ }中的回圈,然后再判斷while(),再回圈,再判斷...以此反復; 如果當while();中的判斷為false時,馬上終止回圈,
那我當時為啥當時會一直理解錯呢呢,是因為當時寫了個這樣的類:

我當時就這樣讀的:我輸入一個數,當這個數是在1、2、3之間的話,就執行do{ }里面的陳述句,選擇一個case然后就輸出“石頭,剪刀,布”中一個唄,然后,如果你輸入的數字小于等于0或者大于等于4的話,就輸入錯誤的資料嘛,輸入錯誤不就是要跳出判斷避免再錯 (合著我當時把它當成判斷陳述句了?
所以當我寫這個游戲中的另外一個類的時候:

不是要判斷你輸入 Y or N,根據你的選擇來判斷是繼續游戲還是終止游戲嗎所以我就根據我的“經驗”,寫的是“ while("n".equalsIgnoreCase(choice) ) ”,意思就是<當你輸入 Y 的時候,字串不匹配,所以繼續執行do{ }中內容, 當你輸入N 的時候,字串匹配了,所以就跳出回圈了>
結果當然是和我的想法不一樣了,我輸入Y就終止,輸入N就執行,怎么想都想不通,就算我改成“ while("y".equalsIgnoreCase(choice) ) ”,運行正常了,還是找不到為什么,(現在終于想通了)
所以首先一定要清楚,do{ }whlie(); 陳述句是回圈用的,不是來判斷的,while(); 只是一個工具人,do{ }一定是用來回圈的,不是while();判斷完之后,就執行一下do{ }就結束了,還要一直判斷的,
就醬
個人覺得do{ }while();挺好用的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165079.html
標籤:其他
