當前位置:
首頁 > 知識 > for循環問題

for循環問題

印象中的for語句是這樣的,語法:

for (語句 1; 語句 2; 語句 3) { 被執行的代碼塊 }

語句 1 (代碼塊)開始前執行 starts.

語句 2 定義運行循環(代碼塊)的條件

語句 3 在循環(代碼塊)已被執行之後執行

然而我今天碰到的for語句是這樣的,下面是具體的代碼:

for(i=0;j=0;i<10,j<6;i++;j++){

而人家給的答案是這樣的,結果為18,給的解釋是,這個循環要進行10次,第一次,i和j的值都為0,...........第10次i為9,j為9,自加1,進行條件判斷,10<10,循環停止。

然而,事實是這樣嗎,答案很顯然是不對的,首先變數申明及初始化就不對,其次結果也不對。

我們先來看下結果:

for循環問題

那麼這道題目應該怎麼改,才能讓它的結果為18呢?

第一種方法:

for(i=0,j=0;i<6,j<10;i++,j++){

其實也沒改多少,只是改了下逗號分號什麼的,然後運行環境的條件變了下,不啰嗦了,我們來分析下這個結果。

首先是,每次for循環i和j的值都是相等的。

第1次:i=0,j=0,符合條件,k=i+j=0;

第2次:i=1,j=1,符合條件,k=i+j=2;

第3次:i=2,j=2,符合條件,k=i+j=4;

..................

第7次,i=6,j=6,符合條件,k=i+j=12(注意:循環繼續的判斷依據以分號前的最後一項為準,即判斷i<10符不符合條件)

第8次,i=7,j=7,符合條件,k=i+j=14;

第9次,i=8,j=8,符合條件,k=i+j=16;

第10次,i=9,j=9,符合條件,k=j+j=18;

第11次,i=10,j=10,不符合條件,循環結束。

for循環執行了10次,最終結果為18

第二種方法:

for(i=0,j=0;i<10||j<6;i++,j++){

好了,那麼如果將代碼改成這樣,結果又會是多少呢?

for(i=0,j=0;i<10,j<6;i++,j++){

可以發現,小小的改動,結果就會不一樣(結果為10)。分析同上

總結:語句2 循環繼續的判斷依據以分號前的最後一項為準,而不是以第一項為準。


作者:江峰★

出處:http://www.cnblogs.com/jf-67/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利

「勤工儉學計劃」,給你一個真正0元學習IT技術的機會!

http://www.ujiuye.com/zt/qgjx/?wt.bd=fq37300j

找工作太難?不是你不行,我們來幫你!

http://www.ujiuye.com/zt/jyfc/?wt.bd=fq37300j

交流群:345648424

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

乾貨:基於 Git Flow 的 Git 最佳實踐
基於.NET CORE微服務框架-談談surging的服務容錯降級
es6的一些基本語法
SpringMVC項目國際化(i18n)實現方法
實時地播放動畫的五維光場

TAG:IT優就業 |

您可能感興趣

Python的for循環
理解 Python 的 for 循環
Perl 循環
spring+shiro+cas的整合問題之循環重定向
Kotlin 循環控制
微軟推最新程序語言Bosque 以Functors取代Loop循環
python中while循環列印星星的四種形狀
J Clin Periodontol:口腔健康與視網膜微循環的關係
作為全球創意總監,Christopher Raeburn 如何在 Timberland 品牌上延續「再循環美學」?
Jmeter如何設置線程數,ramp-up period,循環次數
Python第18課-while循環
告別for循環!微軟發全新開源編程語言Bosque
雙向循環神經網路及TensorFlow實現
瀏覽器與Node的事件循環(Event Loop)有何區別?
Python字元串、循環及練習
使用shell命令循環處理文件
Python編寫循環的兩個建議
新款Apple Watch出現bug,陷循環重啟
AGA的《Wonderful U》無差評的單曲循環必備好歌!
正能量王嘉爾告訴你,《Dawn of us》為何被單曲循環