各種循環的思想

我在平時工作中接觸到了大量的循環條件,一般都是按照從上往下的形式去閱讀這個循環,但是某個時刻我發現爲什麼不能做到無需循環心中自有循環萬千的境界,於是決定寫這篇博文來總結所有循環條件,因爲真的太有用了,所有需求、程序、腳本基本上都是由循環構成的,循環通了則萬法皆通。(哈哈哈哈哈哈哈)

一 . while 循環
while (邏輯值 ){

  做事

}

如果 邏輯值 = true 則會一直做事(思考) 這樣豈不是陷入到死循環了嗎 ?
這時候有個很巧妙的辦法就是設置while 循環次數

int i=10;
while (i>0)
{
Console.Write(1);
i = i - 1;
}
第一次執行 i = 10 然後 打印
第二次執行 i = 9 然後 打印
。。。。
第十一次 i < 0這時候 就跳出了循環了
tips :利用這個特性可以 用while 循環打印 1.....10 的數字
int i=10;
while (i>0)
{
Console.Write( 11-i );
i = i - 1;
}
while 循環的兄弟 do while 循環
do
{
做事
}
while(邏輯值);
do後面的中括號是指在循環內要做的事,先做事,然後邏輯值如果是true,那麼就循環一次,如果是false,那就不再做事.這個與上面單獨使用while的區別是,do while無論邏輯值是true還是false,至少會做一次事,但是while的話,如果一開始是false,則一次都不會執行

所以我們改寫打印1到10的 while 循環

int i=10;

do {
Console.Write( 11-i );
i = i - 1;
}
while (i>0) ;
do while 循環實際應用比較少 ,所以學好while 循環就可以了

二·.for 循環的使用
經典例子 :
int main()
{
int x, a;

for (x=0,a=0; a<=1 && !x++; a++)  
{  
    a++;  
}  

printf("%d", a);  
return 0;  

}

代碼很簡單,可是打印結果呢?
有的朋友可能會想當然的認爲, 打印結果是1.
可是,真的是1嗎? 複製到編譯器上跑跑,奇蹟般的發現,其實是2.
下面就分析下這簡單代碼。

第一步:初始化定義,x = 0, a = 0;
第二步:a小於1, x 的非爲1,符合循環條件
第三步:x++後x自增爲1.
第四步:進入循環體,a++,a自增爲1.
第五步:執行循環語句頭中的a++,a自增爲2.
第六步:執行循環語句頭的判讀條件,a=2>1,故不滿足,不執行循環語句。
第七步:打印a的值爲2.

然後發現for 循環的執行順序是 :

for(a;b;c)
執行順序
先執行a
在判斷b是否爲真,若爲真
執行循環體,
執行c
然後再次判斷b是否爲真,若爲真
執行循環體
執行c
。。。
直到b爲假,跳出循環

雙重for 循環
1.外層判斷循環條件,滿足進入外層循環體
2.內層判斷循環條件
3.內層循環體執行
4.內層循環變量累加,回到2執行,直到不滿足內層條件
5。外層循環變量累加,回到1執行,直到不滿足外層循環條件,徹底退出循環

for (int i=1;i<=9;i++)
{
for(int j=1;j<i;j++)
{
console.write("{0}{1}={2}",i,j,ij)
}
console.writeLine();

}
這個是怎麼執行的,結果是什麼呢!
追答
實際上是打印了一個乘法表,21開始98結束
1.首先賦值i = 1, 然後判斷i <=9,滿足條件,進入外層循環體
2.賦值j=1,判斷j<i ,(此時兩個值相同),不滿足條件,不進入內層循環,也不執行j++,直接執行console.writeLine();輸出一個換行符號
3.到此外層第一次循環結束,執行i++,也就是i=2了,然後判斷i <=9,滿足條件,再次進入外層循環體
4.賦值j=1,判斷j<i ,滿足條件,進入內層循環體,輸出21=2。
5,內層循環體第一次循環結束,循環變量 j++,j=2了,再次判斷j<i ,不滿足條件,退出內層循環
6,執行console.writeLine();輸出一個換行符號
7,由此重複3~6,i =3時,打印 3
1=332=6,i=4時,打印41=442=843=12,當i=9時執行最後一次循環,91=9....98=72,之後累加i =10,不滿足外層循環,徹底退出

三 . if 循環

if ( 條件成立){
條件成立時執行程序塊
}

各種循環的思想

if ( 條件的布爾表達式){
語句1
}else {
語句 2
}
各種循環的思想
int score = 90
if ( score <100){
大吉大利今晚吃雞
}
else
{
死了
}
if ( 條件的布爾表達式){
語句1
}else if {
語句 2
}else{
語句 3
}

各種循環的思想

嵌套if

if (條件1 ) {
if (條件2) {
語句1
} else{
語句2
}
} else{
語句3
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章