主要有兩個原因:一是白起有報復的心理;二是白起認為打不贏,
一、白起的報復
長平之戰結束後,秦軍拿下上黨郡,之後,秦軍兵分兩路,一路由王齕率領,攻下皮牢(今河北武安),另一路由司馬梗率領,攻取太原,白起則率領秦軍主力駐屯上黨郡,對趙國都城邯鄲呈合圍之勢,準備攻打邯鄲。
王齕這一路基本上到達邯鄲城郊了,可以看作是秦軍攻打邯鄲的先鋒,司馬梗這一路則是威脅邯鄲北部的趙地,防止趙國北地邊軍支援邯鄲,主攻依然是白起。
軍事部署都已經基本完成了,然後趙國派使者蘇代出使秦國,以重金受賄秦相范雎,用「趙國如果滅亡,白起地位功勞將在秦相之上」的原因來勸說范雎,建議范雎勸說秦王,讓秦國退兵。

白起
范雎被蘇代說服,這話其實正中范雎要害,范雎於是勸說秦昭襄王罷兵,說趙國願意割讓六座城池給秦國,以求秦國退兵,秦昭襄王同意了。
《史記 白起王翦列傳》:武安君聞之,由是與應侯有隙。
那邊白起的軍事部署都準備好了,都準備攻打邯鄲了,這邊秦昭襄王下令退兵,白起聽說這事後,對范雎很是不滿。
打仗打的就是機遇,白起本來有一個絕佳滅亡趙國的機會,此時趙國剛在長平之戰喪失了45萬軍隊,這些人基本上是趙國的傾國之兵了,如果秦軍繼續攻打趙國都城邯鄲,趙國根本來不及布防,滅亡趙國有可能的。
但是秦昭襄王才是做決定的那個人,白起也沒有辦法,但是白起明顯有了怨恨,他怨恨的是兩個人:一個是范雎,另一個就是秦昭襄王。
白起敢怨恨秦昭襄王嗎?我認為他敢。
後來趙國反悔,不願意割讓六座城池,秦昭襄王大怒,準備派王陵發兵攻打邯鄲,白起極力勸阻,但秦昭襄王不聽,然後王陵損失了五校兵,大約四萬人,後來秦王用王齕代替王陵繼續圍攻邯鄲,秦軍在邯鄲城下被楚魏趙聯軍打得損失慘得。

范雎勸秦王放棄攻打邯鄲
白起聽說秦軍慘敗之後,說了一句話:
不聽臣計,今果何如?
當初不聽我的話,現在結果怎麼樣?
這完全就是一幅怨恨的表情,這話是說給秦昭襄王聽的,做決策的是秦王,白起身為秦國高級將領,本應該為大局著想,秦軍在邯鄲戰敗,白起正確的做法是為秦軍出戰,並為秦王分析如何把損失降到最低。
但白起並沒有這麼做,秦昭襄王多次要求白起出戰,白起就是不去,秦王甚至親自來請白起,白起還是不去,秦王被逼得沒辦法,把話已經說得很明白了,甚至還有一絲威脅的意思,秦昭襄王是這麼說的:
君雖病,強為寡人卧而將之。有功,寡人之願,將加重於君。如君不行,寡人恨君。
你雖然有病,也得強撐著為我帶兵出戰,有了功勞,這是我所希望的,會重賞你;如果你不去,我就會怨恨你。
秦王這話說得非常清楚,聽從命令出戰,我不追究你的責任,如果不去,我將處罰你。

秦昭襄王
你知道白起怎麼說嗎?他是這麼說的:
臣知行雖無功,得免於罪。雖不行無罪,不免於誅。然惟願大王覽臣愚計,釋趙養民,以諸侯之變。撫其恐懼,伐其驕慢,誅滅無道,以令諸侯,天下可定,何必以趙為先乎?此所謂為一臣屈而勝天下也。大王若不察臣愚計,必欲快心於趙,以致臣罪,此亦所謂勝一臣而為天下屈者也。夫勝一臣之嚴焉,孰若勝天下之威大耶?臣聞主愛其國,忠臣愛其名。破國不可復完,死卒不可復生。臣寧伏受重誅而死,不忍為辱軍之將。願大王察之。
首先,白起明白秦王話中威脅的意思。
白起說:我知道去了,即使沒有戰功,也不會受到處罰,如果不去,即使沒有罪過,也免不了被殺。----(看到沒有,白起知道不去率軍作戰會被殺,而且出戰就算沒有戰功也不會受罰,他都清清楚楚)
然而我只是希望大王能夠看看我的計策,放棄攻打趙國,讓百休養生息,安撫恐懼者,攻打傲慢者,誅滅無道者,以此號令諸侯,天下就能平定,為什麼一定要攻打趙國呢?

無論秦昭襄王說什麼,白起就是不出戰,他的理由很充分,打不贏
我聽說賢明的君主愛惜國家,忠誠的大臣愛惜名譽,破碎的國家不能重獲完整,死去的人不能復生,我寧願受重罰而死,也不忍心做蒙受恥辱軍隊的將領。
注意白起最後的那句話----我寧願死,也不想出戰!
如果你是秦昭襄王,會怎麼想?會不會殺白起的心就有了,白起的確功勞很大,但像他這樣寧願死都不願意聽從君主命令的人,君主怎麼可能允許他活著呢?
秦昭襄王賜死白起並不奇怪,根源在於白起違抗君命,如果秦王能容忍這樣的人和情況,那秦王何以號令其他將領?
白起這樣的將領寧願死,都不願意聽從君主的命令,這只是說是白起自身的性格原因,我認為白起就是報復秦昭襄王,他認為自己做對的,想用秦王的錯誤來懲罰秦王,這就是報復心理,這不是一個合格的將領所具備的性格。
二、白起真的打不贏邯鄲之戰嗎?
從白起多次勸諫秦王的話來看,白起認為秦國打不贏邯鄲之戰,所以死都不出戰。

白起寧願違抗王命
白起第一次勸秦王說:長平之戰,秦勝趙敗,消耗了國家的資財,如果繼續攻打趙國,趙國可能聯合其他諸侯國共同對抗秦國,外交會成功,因此是不可以攻打的。
白起第二次勸秦王說:邯鄲並不好攻,其他諸侯援軍一天就能到達,秦國雖然在長平大破趙國,同樣傷亡過半,國內空虛,如果攻打趙國都城,趙國在內應戰,其了諸侯在外策應,必定能打敗秦軍。
白起第三次是對范雎說:長平之戰後沒有一鼓氣滅亡趙國,趙國得到了喘息時間,增強了力量,趙人堅守城池不戰,不與秦軍野外作戰,秦國攻打趙國只有壞處,沒有好處。
白起第四次對秦王說的話上面已經講到了,基本意思與前三次差不多,總結起來就是白起認為攻趙的時機錯過,趙國已經做好防備,並且已經尋求支援,再打下去也打不贏,因此白起死都不出戰。
從軍事上講,也許白起是對的,但是,秦王考慮問題並不是從軍事角度出發的,而是從政治角度,趙國食言,沒有割讓六座城池,秦王才發兵攻趙的,如果秦國能容忍這種事,那麼對於其他諸侯國來說,這是秦國的恥辱。
其他諸侯國如果知道秦國吃了啞巴虧,會小看秦國,更有可能會聯合起來一起攻打秦國,有可能導致秦國的外部環境變得惡劣,秦王必須用戰爭為秦國找回臉面。
最重要的是,秦昭襄王后來已經不在乎能不能打贏邯鄲之戰了,他只要求白起出戰就行,打不打得贏都能接受,這場戰爭就變成一場臉面之爭了。

白起真的打不贏嗎
個人認為這場戰爭秦國並非打不贏,長平之戰讓秦趙兩國都受到重創,但趙國損失更大,秦軍攻打邯鄲,可以圍而不攻,再利用實力來消耗趙國,即使有魏國和楚國聯軍,他們能在邯鄲長期待下去嗎?顯然不能。
圍而不攻也是一種策略,逼得趙人繼續跟秦國打消耗,邯鄲城的糧食已經不多了,長平之戰消耗了很多,現在邯鄲之戰糧食就不夠了,趙國能堅守多久很難說,這場戰爭並非完全打不贏。
戰爭本來就是不可預料的,白起認為打不贏,是否真的就打不贏,也很難說,而且戰爭受到很多因素的影響,完全不可預料。
白起從自己的角度出發,從軍事的角度出發,也許他是對的,白起作為百戰百勝的將軍,他只打有把握的仗,沒有把握的仗,白起顯然就不想打,白起在乎的是自己的榮耀,他卻忽略了秦王的顏面,屢次違抗秦王的命令,這是白起被賜死的主要原因。