c++从零开始---while 循环和 do while 循环

1、while 循环结构

while循环是没有初始化和更新部分的 for 循环,它只有测试条件和循环体:

while (test - condition)
	body

首先,程序计算圆括号内的测试条件表达式,如果该表达时为 TRUE,则执行循环体内的语句。循环体也由一条语句或两个花括号定义的语句块组成。执行完循环体之后,程序返回测试条件,对它进行重新评估。如果该条件非零,再次执行循环体,直到测试条件为 FALSE 为止。while 循环也和 for 循环一样,是一种入口条件循环,因此如果测试条件一开始便为 false,则程序将不会执行循环体。
以下程序使用了一个 while 循环,该循环遍历字符串,并显示其中的字符及其 ASCII 码。循环在遇到空字符时停止,这种方式是 c++ 处理 c-风格字符串的标准方法。

#include 
const int ArSize = 20;
int main()
{
	using namespace std;
	char name[ArSize];
	cout << "Your first name,please: ";
	cin >> name;
	cout << "Here is your name: " << endl;
	int i = 0;
	while (name[i] != '\0')
	{
		cout << name[i] << ": " << int(name[i]) << endl;
		i++;
	}
	return 0;
}

程序输出为:

Your first name,please: wang
Here is your name:
w: 119
a: 97
n: 110
g: 103

2、for 与 while 循环的区别

许多时候 for 循环与 while 循环是等效的,两者之间可以相互转换。但是在一些场合下使用两者有更方便之处。
通常,程序员使用 for 循环来为循环计数,因为 for 循环格式允许将所有相关的信息—初始值。终止值和更新计数器的方法放在同一个地方。如果无法预先直到循环将执行的次数,通常使用 while 循环。

3、do while 循环

do while 不同于前两种循环,因为它是出口条件循环。即这种循环先执行循环体,再判定测试表达式,决定是否应继续执行循环,下面是其语法:

do
	body
while (test-expression);

通常在程序需要获得输入时使用入口条件循环,否则使用出口条件循环更好。
以下程序演示了如何使用 do while 循环:

#include 
int main()
{
	using namespace std;
	int n;
	cout << "Enter numbers in the range 1-10 to find "
		<< "my favorite number\n";
	do
	{
		cin >> n;
	} while (n != 7);
	cout << "Yes, 7 is my favourite.\n";
	return 0;
}

程序输出为:

Enter numbers in the range 1-10 to find my favorite number
3
2
7
Yes, 7 is my favourite.

4、嵌套循环和二位数组

4.1 c++ 的二维数组的创建

实际上,c++ 并未提供二维数组类型,但是用户可以创建每个元素本身都是数组的数组,这样就创建了一个名义上的二维数组。创建方式如下:

int maxtemps[4][5];

该数组是一个包含 4 个元素的数组,其中每个元素都是一个由 5 个整数组成的数组。该数组可以看做一个 4 行、5 列构成的二维数组。

4.2 二维数组索引

maxtemps [0] 是 maxtemps 数组的第一个元素,其本身也是一个由 5 个 int 组成的数组。maxtemps[0] 的第一个元素是 maxtemps [0][ 0]。
如果想要打印数组的所有内容,可以用一个 for 循环来改变行,另一个被嵌套的 for 循环来改变列:

for (int row = 0;row < 4;row++)
{
	for (int col = 0;col < 5; col++)
		cout << maxtemps[row][col] << "\t";
	cout << endl;
}

4.3 初始化二维数组

初始化二维数组与初始化一维数组类似,只是每一个元素也是数组。

int maxtemps[2] [2] = 
{
	{2,3},
	{2,4}
}

你可能感兴趣的:(c++自学,c++,c++)