C++ 初学者指南 第一篇(10)使用代码块
2013-06-25 11:11
239 查看
必备技能 1.9 : 使用代码块
C++中一个基本的元素就是代码块。一个代码块由两个或者多个语句组成,由一对花括号括起来的。代码块可以作为一个逻辑单元出现在任何单条语句可以出现的地方。例如,代码块可以被使用在if语句或者for循环中:
[cpp] view
plaincopy
if ( w < h )
{
v = w * h;
w = 0;
}
这里,如果w小于h,则代码块中的两条语句都会被执行。因此,代码块中的两条语句形成了一个逻辑单元,要么两条语句都会被执行,要么两条语句都不会被执行。凡是需要把两条或者多条语句在逻辑上进行关联的地方,我们都可以使用代码块。代码块使得许多算法实现起来更加清晰和有效。
下面的程序中使用了代码块来防止除数为0。
[cpp] view
plaincopy
//演示代码块的示例程序
#include <iostream>
using namespace std;
int main()
{
double result,n,d;
cout << "Enter value: ";
cin >> n;
cout << "Enter divisor: "
cin >> d;
//the target of this if is a block
if ( d!= 0 )
{
cout << "d does not equal zero so division is OK" << "\n";
result = n / d;
cout << n << " / " << d << " is " << result;
}
return 0;
}
一个示例的输出结果如下:
Enter value: 10
Enter divisor: 2
d does not equal zero so division is OK
10 / 2 is 5
在上面的这个例子中,if语句的目标不是一条语句,而是一个代码块。如果if语句的控制条件为真,代码块中的三条语句都会被执行。可以尝试输入除数为0,并观察程序的输出结果。此时,代码块中的三条语句都不会被执行。
在本书的后面的的章节中,我们会看到代码块还有别的属性和用法。然而,代码块存在的主要原因是它能够创建在逻辑上不可分割的独立单元。
专家答疑
问:
使用代码块是否会降低运行时的效率?也就是说代码块中的大括号是否会在代码执行的过程中消耗运行时间?
答:
不会的。代码块在运行的时候并不会增加任何的开销。实际上,由于它能简化一些特性算法的编码,使用代码块通常会增加运行的速度和效率。
分号和位置
在C++中,分号代表着语句的结束。也即是说,每一个单独的语句都必须以分号结束。通过前面的介绍,我们知道,代码块是在逻辑上关联的一组语句的集合,它由一对花括号括起来。代码块不是以分号作为结束的。既然代码块是一组语句的集合,其中每条语句都是以分号结束,所以代码块不是以分号结束是有意义的。代码块的结束是通过}来标记的。
C++中,并不是一行的结束就代表着一条语句的结束,只有分号才能代表语句的结束。所以,我们把语句写在了哪一行并不是很重要。例如 ,在C++中
x = y;
y = y + 1;
cout << x << " " << y;
和下面的代码是一样的
x = y; y = y + 1; cout << x << " " << y;
更进一步,语句的单独元素也可以被放置在不同的行中。例如,下面的代码也是可以接受的:
cout << "This is a long line. The sum is : " << a + b + c +
d + e + f;
采用上面的方式避免一行中写过多的代码可以增加代码的可阅读性。
缩进
在前面的例子中,可以看到一些语句采用了缩进的格式。C++是一个很自由的语言,也就是说,在一行中,把相关的代码放置在了行的什么地方并不要紧。然而,人们已经形成了常用的和可以接受的缩进风格,方便阅读程序。本书将遵循这样的缩进风格。并建议读者也这样做。在这种风格中,针对每个{ 后面的代码都需要缩进一个级别,在}之后代码的缩进格式需要向前提升一个级别。还有一些语句将采用另外的缩进方式,本书后续会进行描述。
练习
1.如何创建代码块?它是用来做什么用的?
2.在C++中语句块是以_____结束的。
3.所有的C++语句都必须在同一行开始和结束,对吗?
答案:
1.代码块是以{开始,以}结束的。它是用来创建逻辑单元的。
2.分号。
3.错误。
C++中一个基本的元素就是代码块。一个代码块由两个或者多个语句组成,由一对花括号括起来的。代码块可以作为一个逻辑单元出现在任何单条语句可以出现的地方。例如,代码块可以被使用在if语句或者for循环中:
[cpp] view
plaincopy
if ( w < h )
{
v = w * h;
w = 0;
}
这里,如果w小于h,则代码块中的两条语句都会被执行。因此,代码块中的两条语句形成了一个逻辑单元,要么两条语句都会被执行,要么两条语句都不会被执行。凡是需要把两条或者多条语句在逻辑上进行关联的地方,我们都可以使用代码块。代码块使得许多算法实现起来更加清晰和有效。
下面的程序中使用了代码块来防止除数为0。
[cpp] view
plaincopy
//演示代码块的示例程序
#include <iostream>
using namespace std;
int main()
{
double result,n,d;
cout << "Enter value: ";
cin >> n;
cout << "Enter divisor: "
cin >> d;
//the target of this if is a block
if ( d!= 0 )
{
cout << "d does not equal zero so division is OK" << "\n";
result = n / d;
cout << n << " / " << d << " is " << result;
}
return 0;
}
一个示例的输出结果如下:
Enter value: 10
Enter divisor: 2
d does not equal zero so division is OK
10 / 2 is 5
在上面的这个例子中,if语句的目标不是一条语句,而是一个代码块。如果if语句的控制条件为真,代码块中的三条语句都会被执行。可以尝试输入除数为0,并观察程序的输出结果。此时,代码块中的三条语句都不会被执行。
在本书的后面的的章节中,我们会看到代码块还有别的属性和用法。然而,代码块存在的主要原因是它能够创建在逻辑上不可分割的独立单元。
专家答疑
问:
使用代码块是否会降低运行时的效率?也就是说代码块中的大括号是否会在代码执行的过程中消耗运行时间?
答:
不会的。代码块在运行的时候并不会增加任何的开销。实际上,由于它能简化一些特性算法的编码,使用代码块通常会增加运行的速度和效率。
分号和位置
在C++中,分号代表着语句的结束。也即是说,每一个单独的语句都必须以分号结束。通过前面的介绍,我们知道,代码块是在逻辑上关联的一组语句的集合,它由一对花括号括起来。代码块不是以分号作为结束的。既然代码块是一组语句的集合,其中每条语句都是以分号结束,所以代码块不是以分号结束是有意义的。代码块的结束是通过}来标记的。
C++中,并不是一行的结束就代表着一条语句的结束,只有分号才能代表语句的结束。所以,我们把语句写在了哪一行并不是很重要。例如 ,在C++中
x = y;
y = y + 1;
cout << x << " " << y;
和下面的代码是一样的
x = y; y = y + 1; cout << x << " " << y;
更进一步,语句的单独元素也可以被放置在不同的行中。例如,下面的代码也是可以接受的:
cout << "This is a long line. The sum is : " << a + b + c +
d + e + f;
采用上面的方式避免一行中写过多的代码可以增加代码的可阅读性。
缩进
在前面的例子中,可以看到一些语句采用了缩进的格式。C++是一个很自由的语言,也就是说,在一行中,把相关的代码放置在了行的什么地方并不要紧。然而,人们已经形成了常用的和可以接受的缩进风格,方便阅读程序。本书将遵循这样的缩进风格。并建议读者也这样做。在这种风格中,针对每个{ 后面的代码都需要缩进一个级别,在}之后代码的缩进格式需要向前提升一个级别。还有一些语句将采用另外的缩进方式,本书后续会进行描述。
练习
1.如何创建代码块?它是用来做什么用的?
2.在C++中语句块是以_____结束的。
3.所有的C++语句都必须在同一行开始和结束,对吗?
答案:
1.代码块是以{开始,以}结束的。它是用来创建逻辑单元的。
2.分号。
3.错误。
相关文章推荐
- C++ 初学者指南 第一篇(10)
- C++ 初学者指南 第六篇(10)
- C++ 初学者指南 第一篇(11)
- C++ 初学者指南 第二篇(10)
- C++ 初学者指南 第一篇(3)
- C++ 初学者指南 第一篇(4)
- C++ 初学者指南 第四篇(10)
- C++ 初学者指南 第一篇(13)
- C++ 初学者指南 第一篇(5)
- C++ 初学者指南 第五篇(4)使用return语句
- C++ 初学者指南 第一篇(6)
- C++ 初学者指南 第一篇(12)
- C++ 初学者指南 第一篇(7)
- C++ 初学者指南 第一篇(2)
- C++ 初学者指南 第一篇(8)
- C++ 初学者指南 第五篇(10)
- C++ 初学者指南 第一篇(9)
- C++ 初学者指南 第一篇(14)
- C++ 初学者指南 第一篇(7)从键盘读取输入
- C++ 初学者指南 第三篇(10)