for循環之省略{}



#include <iostream> using namespace std; int main() { for (int i = 1;i <= 10;i++) { for (int j = 1;j <= i;j++) cout << "M"; //注意此處並未使用{},效果是一樣的 cout << endl; } cin.get(); return 0; }

運行結果:

M
MM
MMM
MMMM
MMMMM
MMMMMM
MMMMMMM
MMMMMMMM
MMMMMMMMM
MMMMMMMMMM

又一個例子:

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1;i <= 10;i++)
    {
        for (int j = 1;j <= i-1;j++)            //只要滿足就會一直執行下去,顯示空格
            cout << " ";                  
        for (int k = 1;k < 21 - 2 * i;k++)
            cout << "M";
        cout << endl;
    }

    cin.get();
    return 0;
}

結果如下:

 

 

 1 #include <iostream>
 2 using namespace std;  3 
 4 int main()  5 {  6     for (int i = 1;i <= 10;i++)  7  {  8         for (int j = 1;j <= 10-i;j++)  9             cout << " "; 10         for (char k = 'A';k < 'A' +2 * i-1;k++) 11             cout << k; 12         cout << endl; 13  } 14 
15     cin.get(); 16     return 0; 17 }

 

結論:在必要時候省略{},達到的效果 是一樣的,看起來更加簡潔

 

******************************************************************************************2017-07-10

上面的內容說了那么多,圖文並茂,然而總結起來一句話:c語言的語句塊里,如果里面只有一條語句,可以不打花括號。

但是,但是,這些都屬於次要語言特性!!要掌握關鍵語言特性,參見王垠如何掌握所有的程序語言

為了達到融會貫通,一通百通的效果,初學准應該專注於語言里面的關鍵特性,而不是被次要的特性分心。

何為關鍵特性?就是所有語言里面都具有的普遍性的東西。如變量,函數,遞歸,類型等

  • 變量定義

  • 算術運算

  • for 循環語句,while 循環語句

  • 函數定義,函數調用

  • 遞歸

  • 靜態類型系統

  • 類型推導

  • lambda 函數

  • 面向對象

  • 垃圾回收

  • 指針算術

  • goto 語句。。。。。。。

最高境界:

自己動手實現語言特性。使用Scheme

在基本學會了各種語言特性,能用它們來寫代碼之后,下一步的進階就是去實現它們。只有實現了各種語言特性,你才能完全地擁有它們,成為它們的主人。否則你就只是它們的使用者,你會被語言的設計者牽着鼻子走。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM