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

在基本学会了各种语言特性,能用它们来写代码之后,下一步的进阶就是去实现它们。只有实现了各种语言特性,你才能完全地拥有它们,成为它们的主人。否则你就只是它们的使用者,你会被语言的设计者牵着鼻子走。

原文地址:https://www.cnblogs.com/skylover/p/7080824.html