從0學Java之Do-While循環(huán)
我們講了while循環(huán),它會首先判斷一個條件是否滿足,如果條件滿足,則執(zhí)行后面緊跟著的語句或語句括號,然后再次判斷條件是否滿足,如果條件滿足則再次執(zhí)行,直到條件不滿足為止。后面緊跟的語句或語句括號,就是循環(huán)體。
do-while循環(huán)和while循環(huán)很像,唯一的區(qū)別是我們在循環(huán)體執(zhí)行結束的時候才來判斷條件。也就是說,無論如何,循環(huán)都會執(zhí)行至少一遍,然后再來判斷條件。與while循環(huán)相同的是,條件滿足時執(zhí)行循環(huán),條件不滿足時結束循環(huán)。
①do-while循環(huán)
案例:數(shù)位數(shù),如果給你一串數(shù)字,讓你通過編程,讓計算機判斷出這一串數(shù)字是幾位數(shù),你打算怎么寫?
- 程序要讀入一個正整數(shù),然后輸出這個整數(shù)的位數(shù)。如:
- 輸入:3452,輸出:4
人看一眼就能看出來,這是4位數(shù),但計算機是通過判斷數(shù)的范圍來決定它的位數(shù),但如果是128475753943828482.....讓人數(shù)怎么辦,這時候就得依靠計算機,因為計算機最擅長的就是做算法,讓這串數(shù)字每除以10就記一位,這樣是不是就可以,讓我們試一下。
這么看好像完全沒有問題,但往往沒有問題的時候就會出現(xiàn)問題,如果是這一串數(shù)字是0呢,大家在這個代碼上試一下。
代碼運行起來會顯示0,這顯然是不對的,0的位數(shù)是1,那如果用do-while循環(huán)是不是就可以把問題解決掉,在進入循環(huán)體之前不做判斷,而是在執(zhí)行完一輪循環(huán)體的代碼之后,再來檢查循環(huán)的條件是否滿足,如果滿足則繼續(xù)下一輪循環(huán),不滿足則結束循環(huán)。
ok,現(xiàn)在輸入0顯示的位數(shù)是1,說明是對的,那再測試一下其他數(shù)。
我做了while循環(huán)和do-while循環(huán),兩個流程圖讓他們更加明朗一點。