C++基础之循环语句

在程序设计过程中,有时候需要多次去执行相同的过程,例如打印“我爱我的祖国”这句话100次。如果我们像下面这样编写程序:

cout<<"我爱我的祖国\n";
cout<<"我爱我的祖国\n";
cout<<"我爱我的祖国\n";
.....
cout<<"我爱我的祖国\n";

不断的编写100条相同的语句,这会使得程序变得冗长。在C++编程语言中,通过引入一些循环语句来解决该问题,这些语句主要包含三种:for循环、while循环、do whie循环。本博客简单的对这三种循环语句进行相应的说明。

1 for 循环

在C++语言中,for循环语句的通用格式为:

for (initialization; test-expression; update-expression)
	  loop body

for循环语句大致包含了两部分部分,一部分有初始化(initialization)、测试表达式(test-expression)、更新表达式(update-expression)这三个组成的控制部分,这三个由括号括起来,每部分都是一个表达式,且使用分号隔开。另外一个是循环体(loop body)。例如打印100次“我爱我的祖国”

for(int  i = 1; i<=100; i++)
	cout<<"i = "“我爱我的祖国。\n”;

for循环在执行过程中,其三个控制部分与循环体的先后执行步骤为:

  • 设置初始值;
  • 执行测试,判断循环条件是否满足,从而决定是否执行循环体;
  • 如果条件满足,则执行循环体,否则跳出循环;
  • 更新用于测试的值。

其详细的流程图如下
在这里插入图片描述

1.1 表达式和语句

for循环语句中的三个控制部分都使用的是表达式。表达式为任何值或任何有效的值和运算符组合而形成的都属于表达式,在C++中,任何表达式都有值。例如

10     //
22+27
x = 20     // 赋值表达式的值定义为左侧成员的值

在C++语言中,表达式+分号便形成语句,也称为表达式语句。所有表达式+分号都可以成为语句,但是相反并不成立,即语句去掉分号后并不一定是表达式,比如返回语句、声明语句等。

1.2 for循环的三个控制部分

在C++语言中,对for循环的控制部分有下述一些特性:

  • 在初始化部分可以直接声明变量,这种声明的变量只能存在于for语句中,离开了循环后改变量便会消失;
  • 更新部分可以通过修改步长来更新表达式。
1.3 循环处理字符串

for循环处理字符串时,一般有两种模式:C-风格字符串,string类。
当处理C风格字符串时,需要注意的是关系表达式并不能应用到字符串的判断,这主要是由于数组名是数组的地址,同理,由引号括起来的字符串常量也是其地址,因此字符串的直接比较是查看的这两个字符串是否存在相同的地址上。比较字符串可以借助于C-风格字符串库中的strcmp()函数来实现。
对于string类字符串来说,可以通过关系运算符来直接对两个字符串进行比较判断。

2 while循环

相比于for循环,while循环式没有初始化和更新部分,只有测试条件和循环体,其通过格式为:

while (test-condition)
		body

while循环和for循环都属于入口条件循环,即先判断循环条件,看是否能够执行循环体。while循环与for循环之间是可以相互转变的,其转换形式如下:

//     for循环体
for (init-expression; test-expression; update-expression)
{
		statement;      //  loop body
}

// 转变后的while循环
init-expression;
while (test-expression)
{
	statement;
	update-expression;
}

我们可以通过下列一个例子来理解for循环与while循环的转变:
例子: 输入五个数,输出该五个数的值和平均值。

  • for循环语句
#include<iostream>
using namespace std;

int main()
{
	cout << "The Amazing Account will sum and average five numbers for you.\n";
	cout << "Please enter five values:\n";
	double number; 
	double sum = 0.0;
	for (int i = 1; i <= 5; i++)
	{
		cout << "Values " << i << ": ";
		cin >> number;
		sum += number;
	}
	cout << "Five exquisite choice indeed! They sum to " << sum << endl;
	cout << "and average to " << sum / 5 << " .\n";
	return 0;
}
  • while循环语句
#include<iostream>
using namespace std;

int main()
{
	cout << "The Amazing Account will sum and average five numbers for you.\n";
	cout << "Please enter five values:\n";
	double number; 
	double sum = 0.0;
	int i = 1;     // init-expression
	while (i <= 5)
	{
		cout << "Values " << i << ": ";       // statement
		cin >> number;
		sum += number;
		i++;         //  update-expression
	}
	cout << "Five exquisite choice indeed! They sum to " << sum << endl;
	cout << "and average to " << sum / 5 << " .\n";
	return 0;
}

3 do while循环

不同于for循环与while循环,do while循环属于出口条件循环,即先执行循环体,再判断测试条件。其通用的格式为:

do 
           loop body
while (test-expression);

一般情况下,入口条件循环比出口条件循环好,因为入口条件循环在循环开始之前对条件进行检查。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值