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,循環停止。
然而,事實是這樣嗎,答案很顯然是不對的,首先變數申明及初始化就不對,其次結果也不對。
我們先來看下結果:
那麼這道題目應該怎麼改,才能讓它的結果為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
※乾貨:基於 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》為何被單曲循環