2017-02-12 44 views

回答

0

它們產生不同的輸出,因爲內部迴路絕不等效。

測試i != j不會影響第一種形式的內循環的迭代次數 - 迭代次數始終爲5,並且if (i != j) ...將在每次循環迭代中執行。

然而,在第二大量的代碼,現在i != j是的循環條件的一部分,所以將循環後五次迭代或第一時間終止它發現i != j爲假(即,如果i == j)。

請考慮如果i爲零,那麼在兩批代碼中會發生什麼情況。

在第一批代碼中,內部循環總是迭代五次,並且輸出將生成所有j != i的值。對於i等於零,這意味着產生四行輸出(對於j,每個值爲1,2,3,4,但是對於0不適用)。

在第二大量的代碼,與i等於零,i != j將會對j(零),所以內循環體中的第一值false將永遠不會被執行 - 並且循環體將不用於隨後執行值爲j。將不會產生任何輸出。

0

在第一實施例中的內環將檢查i != j與每次迭代,但仍然遍歷所有值j在範圍0,...,4

內但是,只要其條件立即停止執行

j < 5 && i != j 

是錯誤的。該內部循環並不總是執行5次迭代:如果i != j對於j的值小於5,則該循環提前退出。

+0

你的答案也是正確的.... – kaushikC