1.4控制流

1.4.1 while 语句

  • while语句形式:
    while(condition)
    statement

    while语句中,如condition为真,持续执行statement,直至condition为假。
    例:用while语句求1到10这十个数的和
#include<iostream>
int main()
{
	int sum=0,va1=1;
	//只要va1的值小于等于10,while循环执行
	while(va1<=10)
	{
		sum+=va1;//将sum+va1赋值给sum 
		++va1;//将va1加1 
	 } 
	 std::cout<<"Sum of 1 to 10 is"<<sum<<std::endl;
	 return 0;
 } 

在这里插入图片描述
语句分析

  • “<=":小于等于运算符
  • ”+=“:复合赋值运算符
    sum+=va1;
    等价于
    sum=sum+va1;
  • ”++“:前缀运算符
    ++va1;
    等价于
    va1=va1+1;

    执行完一次while语句后,会重新进入condition进行判断;如满足condition则继续循环;否则终止循环

练习
1.用while循环将50到100的整数相加

#include<iostream>
int main()
{
	int sum=0,va1=50;
	//只要va1的值小于等于100,while循环执行
	while(va1<=100)
	{
		sum+=va1;//将sum+va1赋值给sum 
		++va1;//将va1加1 
	 } 
	 std::cout<<"Sum of 50 to 100 is"<<sum<<std::endl;
	 return 0;
 }

在这里插入图片描述
2.运用递减运算符(–)打印10到0之间的整数

#include<iostream>
int main()
{
	int va1=10;
	--va1;
	while(va1>0)
	{		
        std::cout<<va1<<std::endl;
        --va1;
	 } 
	 
	 return 0;
 }

在这里插入图片描述
3.用户输入两个整数,打印这两个整数范围内的所有整数

#include<iostream>
int main()
{
	int va1=0,va2=0; 
	std::cout<<"Enter two numbers:"<<std::endl;
	std::cin>>va1>>va2;
	while(va1-1>va2)//由于是先判断再输出,为保证输出的数在两数中间,应对较小的数减1 
	{		
        std::cout<<++va2<<std::endl;
	 } 
	 while(va1<va2-1)
	{		
        std::cout<<++va1<<std::endl;
	 } 
	 return 0;
 }

在这里插入图片描述
1.4.2 for语句

  • for语句由循环头和循环体构成
#include <iostream>
int main()
{
	int sum = 0;
	for (int va1 = 1; va1 <= 10; va1++)
	{
		sum += va1;
	}
	std::cout << "Sum of 1 to 10 is" << sum << std::endl;
	return 0;
}
循环头组成部分具体语句
初始化语句int va1 = 1;
循环条件va1 <= 10
表达式va1 <= 10
  1. 创建变量va1,将其初始化为1。
  2. 检测 va1 是否小于等于10。若检测成功,执行 foz循环体。若失败,退出循环, 继续执行 for循环体之后的第一条语句。
  3. 将va1的值增加1. 4.重复第2步中的条件检测,只要条件为真就继续执行剩余步骤。

练习

1.4.3读取数量不定的输入数据

  • 根据用户输入数据求和:
#include <iostream>
int main()
{
	int sum = 0,value=0;
	while(std::cin>>value)
	{
		sum += value;
	}
	std::cout << "Sum is" << sum << std::endl;
	return 0;
}

在这里插入图片描述
语句分析

  • while(std::cin>>value)
    使用istream作为条件时,如未遇到错误,则继续执行。当遇到文件结束符或遇到无效输入时,isteam对象状态变为无效,判断语句为假

在这里插入图片描述

1.4.4 if语句

  • 编写程序,输出数字的重复字数
#include <iostream>
int main()
{
	int currVal = 0, va1 = 0;
	//保证数字的有效输入
	if (std::cin >> currVal)
	{
		int cnt = 1;//记录相同数字出现次数
		while (std::cin >> va1)
		{
			if (currVal == va1)
			{
				cnt++;
			}
			else
			{
				std::cout << currVal <<  " occurs" <<  cnt <<  "times" << std::endl;
				currVal = va1;
			}

		}
	}
	return 0;
}

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/2021010821391863.png**

练习
1如果上述程序中,输入数字相同,输出结果?

在这里插入图片描述
由于数字都相同,则程序不会进入else板块,从而不会输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值