亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

java - if與while的區(qū)別?

瀏覽:144日期:2024-01-17 11:17:49

問題描述

在《劍指offer》的面試題5:“從尾到頭打印鏈表”,在使用遞歸時,為什么不能用while來代替if?

public static void printListReverse_recursively(listNode headNode){if(headNode!=null){ if(headNode.next!=null) {printListReverse_recursively(headNode.next); } System.out.println(headNode.data); } }

問題解答

回答1:

肯定不能啊 —— 你自己寫個小 Demo 試一試不就知道了,不論把哪個 if 換成 while,都會導(dǎo)致無限循環(huán) —— 因?yàn)槿绻湵黹L度不為 0 的話,則肯定存在 headNode 不為 null,那么如果第一個 if 為 while,那么就會無限循環(huán);如果鏈表長度大于 1 的話,則肯定存在 headNode.next 不為 null,那么如果第二個 if 為 while,那么就會導(dǎo)致無限循環(huán)。

回答2:

if是條件判斷,while是循環(huán)結(jié)構(gòu)。一個只會執(zhí)行一次,一個會執(zhí)行若干次,直到條件為假。

回答3:

遞歸是if和while的區(qū)別是if只會判斷一次,不管代碼會不會執(zhí)行,if判斷不會再回去判斷(有人說'不會再回首')。而while如果表達(dá)式為true的話,會多次回首判斷(回去重新判斷),直到條件不滿足。

假如鏈表是里的值是1,2,3,4;用if的話會輸出1,2,3,4 正常輸出。而用while的話,第一個1非空,就造成了第一個while(headNode.next!=null)條件永遠(yuǎn)為true,會產(chǎn)生死循環(huán)。如果我說的沒錯,希望采納,謝謝!

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 久久久综合结合狠狠狠97色 | 综合自拍| 成人免费大片黄在线观看com | 免费国产一级特黄久久 | 在线观看人成网站深夜免费 | 午夜综合 | 国产一线视频在线观看高清 | 久久a 热6| 男女一级爽爽快视频 | 免费人成在线观看 | 免看一级a一片成人123 | 亚洲国产欧美另类 | 久久久久一| 欧美午夜视频一区二区三区 | 欧美日韩性视频一区二区三区 | 国产精品久久一区二区三区 | 中文字幕综合 | 草草国产成人免费视频 | 成 人免费视频l免费观看 | 亚洲综合久久久久久888 | 亚洲乱强 | 国产日本一区二区三区 | 亚洲精品综合一区二区三区在线 | 美女三级网站 | 欧美a在线视频 | 91久久亚洲最新一本 | 欧美特级大片 | 久久精品资源 | 精品国产91久久久久 | 午夜性爽快免费视频播放 | 久久青草视频 | 富二代精品视频 | 国产精品2020 | 中文字幕 亚洲 一区二区三区 | 黄色片三级网站 | 国产精品成人观看视频国产 | 国产一区自拍视频 | 99热99操99射| 中国一级特黄视频 | 久久久久久久久一次 | 一区二区网站在线观看 |