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